Ü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 [email protected] 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. :) :)
Sie können sich abmelden und auf Ihre Website umleiten:
quelle
Bei mir funktioniert es (Java - Android)
Sie müssen diese Funktion in AsyncTask in Android aufrufen
quelle
Sie können einfach eine Abmeldeschaltfläche erstellen und diesen Link hinzufügen. Dadurch werden Sie von der App abgemeldet und zu Ihrer gewünschten Site weitergeleitet:
https://appengine.google.com/_ah/logout?continue=http://www.YOURSITE.com
Schalten Sie einfach IHRE WEBSITE mit Ihrer Website um
quelle
Dies funktioniert, um den Benutzer von der Anwendung abzumelden, nicht jedoch Google.
Quelle: https://developers.google.com/identity/sign-in/web/sign-in
quelle
AuthInstance
was du benutzt hast. Ihre Quelle selbst sagt ... " Sie können Benutzern ermöglichen, sich von Ihrer AppOuath macht die Google-Instanz nur null, daher haben Sie Google verlassen. So entsteht die Architektur. Das Abmelden von Google, wenn Sie sich von Ihrer App abmelden, ist eine schmutzige Arbeit, kann aber nicht helfen, wenn die Anforderung dies vorsieht. Fügen Sie daher Ihrer signOut () - Funktion Folgendes hinzu. Mein Projekt war eine Angular 6 App:
document.location.href = " https://www.google.com/accounts/Logout?continue=https://appengine.google.com/_ah/logout?continue=http://localhost:4200 ";
Hier localhost: 4200 ist die URL meiner App. Wenn Ihre Anmeldeseite xyz.com ist, geben Sie dies ein.
quelle
Dieser Code funktioniert zum Abmelden
quelle
So melden Sie sich nur von der App ab, nicht jedoch von Google Mail:
Ich verwende oben in meinem ReactJs-Code.
quelle
Ich hoffe, wir können dies erreichen, indem wir das Token während der Anmeldung in einer Sitzung speichern und auf das Token zugreifen, wenn er auf Abmelden geklickt hat.
quelle
Es sieht so aus, als hätte Google kürzlich etwas mit seinem Widerrufsmaterial gebrochen (es hat begonnen, 400 Fehler für uns zurückzugeben). Sie müssen jetzt anrufen
auth2.disconnect ();
In unserem Fall müssen wir dann einige Sekunden warten, bis der Verbindungsabbruch abgeschlossen ist. Andernfalls wird der Anmeldecode erneut autorisiert, bevor er abgeschlossen ist. Es wäre gut, wenn Google ein Versprechen von der Trennungsmethode zurückgeben würde.
quelle