Google Log-in (GSI) für Assistant ermöglicht Nutzern die nahtlose Verknüpfung und ist für Entwickler am einfachsten zu implementieren. Mit GSI kann Ihre Aktion während einer Unterhaltung Zugriff auf das Google-Profil Ihres Nutzers anfordern und, wenn der Nutzer einwilligt, den Namen, die E-Mail-Adresse und das Profilbild des Nutzers abrufen. Anhand dieser Informationen kann deine Aktion dann prüfen, ob der Nutzer ein Google-Konto in deinem System hat. Falls nicht, wird der Nutzer gefragt, ob er anhand der Google-Profilinformationen ein neues Konto in deinem System erstellen möchte.
GSI ist die empfohlene Kontoverknüpfungslösung, wenn eine der folgenden Bedingungen zutrifft:
- Sie haben kein Authentifizierungssystem und/oder erwarten, dass alle Nutzer ein Google-Konto haben. Wenn deine Aktion beispielsweise speziell auf Assistant ausgerichtet ist, kannst du davon ausgehen, dass alle deine Nutzer Google-Konten haben.
- Sie haben ein Authentifizierungssystem und möchten nur Nutzer verknüpfen, die sich mit ihrem Google-Konto in Ihrem System angemeldet haben.
Wie Sie herausfinden, ob GSI die richtige Lösung für Sie ist, erfahren Sie auf der Seite Kontoverknüpfungstyp auswählen.
Wichtige Begriffe
Bevor Sie sich mit der Funktionsweise von GSI vertraut machen, machen Sie sich mit den folgenden Begriffen vertraut:
Google-ID-Token:Eine signierte Erklärung zur Identität eines Nutzers, die die grundlegenden Google-Profilinformationen (Name, E-Mail-Adresse und Profilbild) des Nutzers enthält. Ein Google-ID-Token ist ein JSON-Webtoken (JWT).
Hier ein Beispiel für ein decodiertes Token:
{ "sub": 1234567890, // The unique ID of the user's Google Account "iss": "https://accounts.google.com", // The token's issuer "aud": "123-abc.apps.googleusercontent.com", // Client ID assigned to your Actions project "iat": 233366400, // Unix timestamp of the token's creation time "exp": 233370000, // Unix timestamp of the token's expiration time "name": "Jan Jansen", "given_name": "Jan", "family_name": "Jansen", "email": "jan@gmail.com", // If present, the user's email address "locale": "en_US" }
user.verificationStatus
: Ein vom System festgelegtes Attribut, das angibt, ob für die aktuelle Sitzung ein bestätigter Nutzer vorhanden ist.user.accountLinkingStatus
: Ein vom System festgelegtes Attribut, das angibt, ob der Nutzer in der aktuellen Sitzung eine verknüpfte Identität hat.System zur Kontoverknüpfung:Eine vordefinierte Szene, in der der Bestätigungsvorgang für die Kontoverknüpfung implementiert wird und die an bestimmte Anwendungsfälle angepasst werden kann.
Funktionsweise
Der grundlegende Ablauf für GSI sieht so aus:
- Mit deiner Aktion wird der Nutzer um seine Zustimmung für den Zugriff auf sein Google-Profil gebeten.
- Nachdem der Nutzer seine Einwilligung erteilt hat, erhält deine Aktion ein Google-ID-Token, das die Google-Profilinformationen des Nutzers enthält.
- Validieren und decodieren Sie das Token, um den Profilinhalt zu lesen. Wenn Sie die Actions on Google-Auftragsausführungsbibliothek für Node.js verwenden, wird das Token für Sie validiert und decodiert.
Deine Aktion prüft anhand dieses Tokens, ob die Google-Profilinformationen des Nutzers in deinem System vorhanden sind.
- Wenn dies der Fall ist, hat sich der Nutzer bereits mit seinem Google-Konto in Ihrem System angemeldet. Der Nutzer kann die Unterhaltung mit Assistant fortsetzen, wobei seine Identität mit seinem Google-Konto verknüpft ist.
Ist dies nicht der Fall, kann der Nutzer in Ihrem System ein neues Konto mit den Informationen erstellen, die im Google-ID-Token enthalten sind. Der Nutzer kann die Unterhaltung mit Assistant fortsetzen und sein neues Konto verknüpfen.
Google Log-in-Abläufe
In diesem Abschnitt werden die verschiedenen Abläufe beschrieben, die mit Google Log-in auftreten können.
Ablauf 1: Die Nutzerinformationen sind in Ihrem System vorhanden.
Das folgende Diagramm zeigt den End-to-End-Datenfluss mit GSI, wenn die Informationen des Nutzers bereits in Ihrem System vorhanden sind:
In diesem Fall wechseln Sie zur Szene für das Kontoverknüpfungssystem und geben eine benutzerdefinierte Begründung an. In dieser Szene wird der Nutzer um die Berechtigung gebeten, auf seine Google-Profilinformationen zuzugreifen.
Wenn der Nutzer einwilligt, sendet Assistant eine Anfrage mit den Profilinformationen für user@gmail.com
. In diesem Fall stimmen die im Google-ID-Token für user@gmail.com
enthaltenen Informationen mit einem Konto in Ihrem System überein, sodass die Identität des Nutzers in Ihrer Aktion automatisch mit diesem Konto verknüpft wird. Der Webhook kann dann die normale Reihenfolge des Nutzers aus einer Datenbank lesen und entsprechend reagieren.
Ablauf 2: Die Informationen des Nutzers sind nicht in Ihrem System vorhanden
Das folgende Diagramm zeigt den End-to-End-Datenfluss mit GSI, wenn die Informationen des Nutzers nicht in Ihrem System vorhanden sind:
In diesem Fall stimmen die im Google-ID-Token für user@gmail.com
enthaltenen Informationen nicht mit einem Konto in deinem System überein. Assistant fragt dann, ob er ein neues Konto erstellen möchte. Der Nutzer kann den Kontoerstellungsvorgang per Sprachbefehl abschließen, anstatt auf ein geprüftes Gerät zu wechseln.
Wenn der Nutzer der Erstellung eines Kontos zustimmt, verwendet der Dienst die Informationen im ID-Token (Name und E-Mail-Adresse des Nutzers), um ein Konto für den Nutzer zu erstellen. Nach der Erstellung des Kontos wird die Identität des Nutzers in Ihrer Aktion mit dem neuen Google-Konto verknüpft.
In diesem Fall hat der Nutzer keine normale Bestellung, da er neu im Dienst ist, also fragt Ihre Aktion, was sie bestellen möchten. Sie können den Nutzer auch fragen, ob er seine letzte Bestellung wie gewohnt festlegen möchte.