Présentation d'OAuth: l'utilisateur est-il celui qu'il dit être?:
Je ne sais pas si vous avez utilisé OAuth pour vous connecter à Stack Overflow, comme l'option "Se connecter avec Google", mais lorsque vous utilisez cette fonctionnalité, Stack Overflow demande simplement à Google s'il sait qui vous êtes:
"Yo Google, ce type de Vinesh prétend que vinesh.e@gmail.com est lui, est-ce vrai?"
Si vous êtes déjà connecté, Google dira OUI. Sinon, Google dira:
"Attendez une seconde Stack Overflow, je vais authentifier ce type et s'il peut entrer le bon mot de passe pour son compte Google, alors c'est lui".
Lorsque vous entrez votre mot de passe Google, Google indique à Stack Overflow que vous êtes qui vous prétendez être et Stack Overflow vous connecte.
Lorsque vous vous déconnectez de votre application, vous vous déconnectez de votre application:
Voici où les développeurs novices dans OAuth sont parfois un peu confus ... Google et Stack Overflow, Assembla, Vinesh's-very-cool-slick-webapp, sont toutes des entités différentes, et Google ne sait rien de votre compte sur l'application Web cool de Vinesh, et vice versa, mis à part ce qui est exposé via l'API que vous utilisez pour accéder aux informations de profil.
Lorsque votre utilisateur se déconnecte, il ne se déconnecte pas de Google, il se déconnecte de votre application, de Stack Overflow, d'Assembla ou de toute autre application Web qui a utilisé Google OAuth pour authentifier l'utilisateur.
En fait, je peux me déconnecter de tous mes comptes Google tout en restant connecté à Stack Overflow. Une fois que votre application sait qui est l'utilisateur, cette personne peut se déconnecter de Google. Google n'est plus nécessaire.
Cela dit, ce que vous demandez, c'est de déconnecter l'utilisateur d'un service qui ne vous appartient vraiment pas. Pensez-y comme ceci: en tant qu'utilisateur, à quel point pensez-vous que je serais ennuyé si je me connectais à 5 services différents avec mon compte Google, puis la première fois que je me suis déconnecté de l'un d'entre eux, je dois me connecter à mon compte Gmail encore une fois parce que le développeur de l'application a décidé que, lorsque je me déconnecterais de son application, je devais également être déconnecté de Google? Cela va vieillir très vite. En bref, vous ne voulez vraiment pas faire ça ...
Ouais, peu importe, je veux toujours déconnecter l'utilisateur de Google, dis-moi simplement comment faire?
Cela dit, si vous souhaitez toujours déconnecter un utilisateur de Google et que vous réalisez que vous risquez très bien de perturber son flux de travail, vous pouvez créer dynamiquement l'URL de déconnexion à partir de l'un de leurs boutons de déconnexion des services Google, puis l'invoquer en utilisant un élément img ou une balise de script:
<script type="text/javascript"
src="https://mail.google.com/mail/u/0/?logout&hl=en" />
OU
<img src="https://mail.google.com/mail/u/0/?logout&hl=en" />
OU
window.location = "https://mail.google.com/mail/u/0/?logout&hl=en";
Si vous redirigez votre utilisateur vers la page de déconnexion ou que vous l'invoquez à partir d'un élément qui n'est pas restreint à plusieurs domaines, l'utilisateur sera déconnecté de Google.
Notez que cela ne signifie pas nécessairement que l'utilisateur sera déconnecté de votre application, uniquement Google. :)
Sommaire:
Il est important que vous gardiez à l'esprit que, lorsque vous vous déconnectez de votre application, vous n'avez pas besoin de forcer l'utilisateur à saisir à nouveau un mot de passe. Exactement! Il s'authentifie auprès de Google afin que l'utilisateur n'ait pas à saisir son mot de passe encore et encore et encore dans chaque application Web qu'il utilise. Il faut un certain temps pour s'y habituer, mais sachez que, tant que l'utilisateur est connecté à Google, votre application n'a pas à se soucier de savoir si l'utilisateur est ou non celui qu'il dit être.
J'ai la même implémentation dans un projet que vous, en utilisant les informations de profil Google avec OAuth. J'ai essayé la même chose que vous cherchez à essayer, et cela a vraiment commencé à mettre les gens en colère lorsqu'ils devaient se connecter à Google encore et encore, alors nous avons arrêté de les déconnecter de Google. :)