Überblick über OAuth: Ist der Benutzer, der er / sie sagt, dass er / sie ist?:
Ich bin nicht sicher, ob Sie OAuth verwendet haben, um sich bei Stack Overflow anzumelden, wie bei der Option "Mit Google anmelden". Wenn Sie diese Funktion verwenden, fragt Stack Overflow Google einfach, ob es weiß, wer Sie sind:
"Yo Google, dieser Vinesh-Typ behauptet, dass vinesh.e@gmail.com er ist, stimmt das?"
Wenn Sie bereits angemeldet sind, sagt Google JA. Wenn nicht, sagt Google:
"Warte einen Sekunden-Stapelüberlauf, ich werde diesen Kerl authentifizieren und wenn er das richtige Passwort für sein Google-Konto eingeben kann, dann ist er es."
Wenn Sie Ihr Google-Passwort eingeben, teilt Google Stack Overflow mit, dass Sie der sind, für den Sie sich ausgeben, und Stack Overflow meldet Sie an.
Wenn Sie sich von Ihrer App abmelden, melden Sie sich von Ihrer App ab:
Hier sind Entwickler, die neu bei OAuth sind, manchmal etwas verwirrt ... Google und Stack Overflow, Assembla, Vineshs sehr coole Slick-Webapp, sind verschiedene Einheiten, und Google weiß nichts über Ihr Konto in Vineshs cooler Webapp und umgekehrt Umgekehrt, abgesehen davon, was über die API verfügbar gemacht wird, mit der Sie auf Profilinformationen zugreifen.
Wenn sich Ihr Nutzer abmeldet, meldet er sich nicht bei Google ab, sondern bei Ihrer App, Stack Overflow oder Assembla oder einer anderen Webanwendung, die Google OAuth zur Authentifizierung des Nutzers verwendet hat.
Tatsächlich kann ich mich von allen meinen Google-Konten abmelden und trotzdem bei Stack Overflow angemeldet sein. Sobald Ihre App weiß, wer der Nutzer ist, kann sich diese Person bei Google abmelden. Google wird nicht mehr benötigt.
Wenn dies gesagt ist, möchten Sie den Benutzer von einem Dienst abmelden, der Ihnen wirklich nicht gehört. Stellen Sie sich das so vor: Wie genervt wäre ich als Nutzer, wenn ich mich mit meinem Google-Konto bei 5 verschiedenen Diensten anmelden würde. Wenn ich mich zum ersten Mal von einem dieser Dienste abmelden würde, muss ich mich bei meinem Google Mail-Konto anmelden wieder, weil dieser App-Entwickler entschieden hat, dass ich beim Abmelden von seiner Anwendung auch von Google abgemeldet werden soll? Das wird sehr schnell alt. Kurz gesagt, Sie wollen das wirklich nicht tun ...
Yeh yeh, was auch immer, ich möchte den Nutzer immer noch von Google abmelden. Sagen Sie mir einfach, wie ich das mache.
Wenn Sie dennoch einen Nutzer von Google abmelden möchten und feststellen, dass Sie möglicherweise dessen Workflow stören, können Sie die Abmelde-URL dynamisch über eine der Abmeldeschaltflächen für Google-Dienste erstellen und diese dann mit aufrufen ein img-Element oder ein Skript-Tag:
<script type="text/javascript"
src="https://mail.google.com/mail/u/0/?logout&hl=en" />
ODER
<img src="https://mail.google.com/mail/u/0/?logout&hl=en" />
ODER
window.location = "https://mail.google.com/mail/u/0/?logout&hl=en";
Wenn Sie Ihren Nutzer auf die Abmeldeseite umleiten oder von einem Element aus aufrufen, das nicht domänenübergreifend beschränkt ist, wird der Nutzer von Google abgemeldet.
Beachten Sie, dass dies nicht unbedingt bedeutet, dass der Nutzer von Ihrer Anwendung abgemeldet wird, sondern nur von Google. :) :)
Zusammenfassung:
Beachten Sie, dass Sie den Benutzer beim Abmelden von Ihrer App nicht dazu zwingen müssen, ein Kennwort erneut einzugeben. Das ist der springende Punkt! Es authentifiziert sich gegenüber Google, sodass der Nutzer sein Passwort nicht in jeder von ihm verwendeten Webanwendung immer und immer wieder eingeben muss. Es ist gewöhnungsbedürftig, aber Sie müssen wissen, dass sich Ihre App, solange der Nutzer bei Google angemeldet ist, keine Gedanken darüber machen muss, ob der Nutzer der ist, von dem er sagt, dass er er ist.
Ich habe dieselbe Implementierung in einem Projekt wie Sie, indem ich die Google-Profilinformationen mit OAuth verwende. Ich habe genau das versucht, was Sie versuchen möchten, und es hat die Leute wirklich wütend gemacht, als sie sich immer wieder bei Google anmelden mussten. Deshalb haben wir aufgehört, sie von Google abzumelden. :) :)