Огляд OAuth: Користувач, ким він / вона каже, що є ?:
Я не впевнений, що ви використовували OAuth для входу в Stack Overflow, як опція "Увійти за допомогою Google", але коли ви використовуєте цю функцію, Stack Overflow просто запитує Google, чи знає він, хто ви:
"Yo Google, цей хлопець з Винеша стверджує, що vinesh.e@gmail.com - це він, це правда?"
Якщо ви вже ввійшли в систему, Google скаже ТАК. Якщо ні, Google скаже:
"Зачекай на секунду Переповнення стека, я аутентифікую цього хлопця, і якщо він зможе ввести правильний пароль для свого облікового запису Google, це він".
Коли ви вводите свій пароль Google, Google потім повідомляє Stack Overflow, що ви є тим, ким ви себе називаєте, і Stack Overflow входить до вас.
Коли ви вийдіть з вашого додатки, ви входите з вашого додатки:
Ось де розробники, нові для OAuth, іноді трохи заплутаються ... Google і Stack Overflow, Assembla, Vinesh's-very-cool-slick-webapp - це різні сутності, і Google нічого не знає про ваш акаунт на крутому веб-додатку Vinesh і віце навпаки, крім того, що виставляється через API, який ви використовуєте для доступу до інформації профілю.
Коли ваш користувач виходить із системи, він або вона не виходить із Google, він виходить із вашої програми, або Stack Overflow, або Assembla, або будь-якої іншої веб-програми, яка використовує Google OAuth для автентифікації користувача.
Насправді я можу вийти з усіх своїх облікових записів Google і все одно ввійти в Stack Overflow. Як тільки ваш додаток дізнається, хто такий користувач, ця людина може вийти з Google. Google більше не потрібен.
З огляду на це, те, що ви просите зробити, це вийти з служби, яка насправді вам не належить. Подумайте про це так: Як користувач, як ви думаєте, як би мене дратувало, якщо я увійшов у 5 різних служб зі своїм обліковим записом Google, тоді, коли я вперше вийшов з однієї з них, я повинен увійти в свій обліковий запис Gmail ще раз тому, що розробник додатків вирішив, що коли я вийду з його програми, я також повинен вийти з Google? Це дуже швидко постаріє. Словом, ви справді не хочете цього робити ...
Так, так, як би там не було, я все одно хочу вийти з Google, просто скажи мені, як це зробити?
З урахуванням сказаного, якщо ви все-таки хочете вийти з Google, і розумієте, що, можливо, ви дуже порушуєте його робочий процес, ви можете динамічно побудувати URL-адресу виходу з однієї з їхніх кнопок виходу із служб Google, а потім викликати це елемент img або тег сценарію:
<script type="text/javascript"
src="https://mail.google.com/mail/u/0/?logout&hl=en" />
АБО
<img src="https://mail.google.com/mail/u/0/?logout&hl=en" />
АБО
window.location = "https://mail.google.com/mail/u/0/?logout&hl=en";
Якщо ви перенаправите свого користувача на сторінку виходу або викличете його з елемента, який не обмежений між доменами, користувач вийде з Google.
Зауважте, що це не обов’язково означає, що користувач вийде з вашої програми, лише Google. :)
Короткий зміст:
Вам важливо пам’ятати, що при виході з програми вам не потрібно змушувати користувача повторно вводити пароль. У цьому вся суть! Він автентифікується проти Google, тому користувачеві не потрібно вводити свій пароль знову і знову і знову в кожну веб-програму, яку він або вона використовує. Потрібно трохи звикнути, але знайте, що поки користувач входить в Google, вашій програмі не потрібно турбуватися про те, чи є користувач тим, ким він / вона каже.
У мене така ж реалізація в проекті, як і у вас, використовуючи інформацію про профіль Google із OAuth. Я спробував те саме, що ви намагаєтесь спробувати, і це справді почало злити людей, коли їм доводилося входити в Google знову і знову, тому ми припинили виходити з них із Google. :)