Wir entwickeln eine SPA - full client base javascript-Anwendung und müssen unsere Benutzer authentifizieren, um Zugang zu den Interna zu erhalten.
Wie ich bei der Suche herausgefunden habe, können wir unseren Authentifizierungsmechanismus auslagern und dazu Google-Konten verwenden. Ich habe von dieser Seite gelernt Ссылка - Umgang mit Google API und Mechanismen zur Authentifizierung .
In dem kurzen Wort brauchen wir:
Dies ist gut beschrieben und ich verstehe es und habe einige JS-Code, um es geschehen zu lassen.
Was ich nicht verstehe
Ich habe eine Anwendung mit ihren privaten Daten. Ich möchte die E-Mail-Adresse des Benutzers als Login oder Benutzer-ID verwenden (egal, wie sie aufgerufen wird), um auf die Interna der App zuzugreifen, z. B. vom Benutzer erstellte Aufgaben, Benutzerprofile usw. So können die vom Benutzer erstellten Aufgaben in meinem SPA angezeigt werden Ich benötige Abfragedatenbank mit der E-mail des Benutzers.
Ich stelle mir das nächste Szenario vor:
Login with Google
button Logout
klicken, löschen wir alle Zugangsdaten Wo sollte ich diese Daten aufbewahren?
Im Fall von Forms Authentication
verstehe ich, dass wir Login / Passwort an den Server übergeben und wenn sie mit der Datenbank übereinstimmen, erstellen wir Forms Ticket
und speichern sie in Cookie .
Gibt es einen ähnlichen Fall mit der Google-Authentifizierung? Wenn ich die E-Mail-Adresse des Nutzers in einem Cookie speichern möchte, ist das aus Sicherheitsgründen nicht sehr gut. Wenn ich ein Token speichere - ich bin mir nicht sicher, warum ich es brauche und wie ich es in meinem SPA verwende, verwende ich kein Google API nach der Authentifizierung.
Haben Sie einen Beispielfall, wie bauen wir unseren Prozess in ähnlichen Fällen auf?
Danke.
Wenn Sie nur die E-Mail-Adresse des Benutzers benötigen, sollten Sie OpenID anstelle von OAuth verwenden. OAuth bietet Zugriff auf das Konto und die Dienste eines Benutzers, die auf eine bestimmte Ressource oder eine Gruppe von Ressourcen beschränkt sind. OpendID ist nur für die Anmeldung bei einem Drittanbieterdienst konzipiert. Sie können dann die ID und die E-Mail-Adresse des Benutzers aus dem OpenID-Login extrahieren. Hinweis: Die ID wird immer gesendet, aber die E-Mail-Adresse muss während der Authentifizierung explizit angefordert werden.
Google unterstützt auch ein hybrides OpenID + OAuth-Schema, mit dem Sie OAuth-Anfragen über eine OpenID-Anmeldung hinauskopieren können, wenn Sie eine Ressource benötigen, die Sie authentifizieren müssen. Sehen Sie sich das Authentifizierungsdokument an, um sich ein Bild davon zu machen, wie beide Protokolle funktionieren und welches für Ihr Szenario am besten geeignet ist.
Sobald Sie die E-Mail-Adresse erhalten haben, sollten Sie sie wahrscheinlich nicht mehr in einem Cookie aufbewahren. Die normalerweise empfohlene Methode ist das Hinzufügen als Sitzungsparameter. Auf diese Weise wird nur der Sitzungscookie auf dem Client gespeichert und der Server kann ihn verwenden, um die benötigten Werte zu finden. Diese Antwort hat eine gute Erklärung der Unterschiede und wann Sie wollen Verwenden Sie Sitzungen im Gegensatz zu Cookies.
Tags und Links authentication oauth-2.0 google-oauth single-page-application