Aperçu d'OAuth : l'utilisateur est-il celui qu'il prétend être ?
Je ne sais pas si vous avez utilisé OAuth pour vous connecter à Stack Overflow, comme l'option "Connexion avec Google", mais lorsque vous utilisez cette fonctionnalité, Stack Overflow demande simplement à Google s'il sait qui vous êtes :
"Yo Google, ce Vinesh prétend que vinesh.e@gmail.com est lui, est-ce vrai ?"
Si vous êtes déjà connecté, Google vous dira OUI. Dans le cas contraire, Google vous répond :
"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 saisissez votre mot de passe Google, Google indique à Stack Overflow que vous êtes bien celui que vous prétendez être, et Stack Overflow vous connecte.
Quand vous vous déconnectez de votre application, vous vous déconnectez de votre app :
Voici où les développeurs novices en matière d'OAuth s'embrouillent parfois un peu... Google et Stack Overflow, Assembla, l'application web très cool de Vinesh, sont tous des entités différentes, et Google ne sait rien de votre compte sur l'application web cool de Vinesh, et vice versa, à part ce qui est exposé via l'API que vous utilisez pour accéder aux informations du profil.
Lorsque votre utilisateur se déconnecte, il ne se déconnecte pas de Google, il se déconnecte de votre application, ou de Stack Overflow, ou d'Assembla, ou de toute autre application web ayant utilisé Google OAuth pour authentifier l'utilisateur.
En fait, je peux me déconnecter de tous mes comptes Google et rester 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 pas vraiment. Pensez-y de la manière suivante : 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 que la première fois que je me déconnecte de l'un d'entre eux, je doive me reconnecter à mon compte Gmail parce que le développeur de l'application a décidé que, lorsque je me déconnecte de son application, je dois également être déconnecté de Google ? Cela va vite devenir lassant. En résumé, vous Je n'ai vraiment pas envie de faire ça. ...
Oui oui, peu importe, je veux toujours déconnecter l'utilisateur de Google, dites-moi juste comment faire ?
Ceci étant dit, si vous toujours Si vous souhaitez déconnecter un utilisateur de Google et que vous réalisez que vous risquez de perturber son flux de travail, vous pouvez créer dynamiquement l'URL de déconnexion à partir de l'un des boutons de déconnexion des services Google, puis l'invoquer à l'aide d'un élément img ou d'une balise 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 si vous l'invoquez à partir d'un élément qui n'est pas soumis à des restrictions interdomaines, l'utilisateur sera déconnecté de Google.
Notez que cela ne signifie pas nécessairement que l'utilisateur sera déconnecté de l'ordinateur. votre application, seulement Google. :)
Résumé :
Il est important que vous gardiez à l'esprit que, lorsque vous vous déconnectez de votre application, vous n'avez pas besoin de demander à l'utilisateur de saisir à nouveau un mot de passe. C'est là tout l'intérêt ! L'application s'authentifie auprès de Google afin que l'utilisateur n'ait pas à saisir son mot de passe encore et encore dans chaque application Web qu'il utilise. Il faut un peu de temps pour s'y habituer, mais sachez que, tant que l'utilisateur est connecté à Google, votre application n'a pas besoin de se demander si l'utilisateur est bien celui qu'il prétend être.
J'ai la même mise en œuvre que vous dans un projet, en utilisant les informations du profil Google avec OAuth. J'ai essayé la même chose que vous, et cela a 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 :)