Konzeptleitfaden zu Google Log-in

Google Log-in (GSI) für Assistant bietet eine nahtlose Verknüpfung für Nutzer und der einfachste Ablauf, den Entwickler implementieren können. Mit GSI kann deine Aktion während einer Unterhaltung Zugriff auf das Google-Profil deines Nutzers anfordern und, wenn der Nutzer zustimmt, den Namen, die E-Mail-Adresse und das Profilbild des Nutzers erhalten. Deine Aktion kann diese Informationen verwenden, um zu prüfen, ob der Nutzer ein Google-Konto in deinem System hat. Wenn nicht, wird der Nutzer von deiner Aktion gefragt, ob er basierend auf seinen Google-Profilinformationen ein neues Konto in deinem System erstellen möchte.

GSI ist in folgenden Fällen die empfohlene Kontoverknüpfungslösung:

  • Sie haben kein Authentifizierungssystem und/oder Sie 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 ihren Google-Konten in Ihrem System angemeldet haben.

Ob GSI die richtige Lösung für dich ist, erfährst du auf der Seite Art der Kontoverknüpfung auswählen.

Wichtige Begriffe

Bevor Sie die Funktionsweise von GSI lesen, sollten Sie sich mit den folgenden Begriffen vertraut machen:

  • Google-ID-Token:Eine signierte Bestätigung der Identität eines Nutzers, die die grundlegenden Google-Profilinformationen eines Nutzers (Name, E-Mail-Adresse und Profilbild) enthält. Ein Google-ID-Token ist ein JSON-Webtoken (JWT).

    Im Folgenden finden Sie 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, mit dem angegeben wird, ob in der aktuellen Sitzung ein bestätigter Nutzer vorhanden ist.

  • user.accountLinkingStatus: Ein vom System festgelegtes Attribut, mit dem angegeben wird, ob der Nutzer in der aktuellen Sitzung eine verknüpfte Identität hat.

  • Systemszene für die Kontoverknüpfung:Eine vordefinierte Szene, die den Bestätigungsvorgang für die Kontoverknüpfung implementiert und an bestimmte Anwendungsfälle angepasst werden kann.

Funktionsweise

Der grundlegende Ablauf bei GSI sieht so aus:

  1. Deine Aktion bittet den Nutzer um Einwilligung für den Zugriff auf sein Google-Profil.
  2. Nachdem der Nutzer eingewilligt hat, erhält deine Aktion ein Google-ID-Token, das die Google-Profilinformationen des Nutzers enthält.
  3. Validieren und decodieren Sie das Token, um den Profilinhalt zu lesen. Wenn Sie die Actions on Google-Bibliothek zur Auftragsausführung für Node.js verwenden, wird das Token für Sie validiert und decodiert.
  4. Deine Aktion verwendet dieses Token, um zu prüfen, ob die Google-Profilinformationen des Nutzers in deinem System vorhanden sind.

    1. Ist dies der Fall, hat sich der Nutzer bereits mit seinem Google-Konto in Ihrem System angemeldet. Der Nutzer kann die Unterhaltung mit Assistant mit seiner Identität fortsetzen, die mit seinem Google-Konto verknüpft ist.
    2. Ist dies nicht der Fall, kann der Nutzer mit den im Google-ID-Token enthaltenen Informationen ein neues Konto in Ihrem System erstellen. Der Nutzer kann dann die Unterhaltung mit Assistant mit verknüpftem neuen Konto fortsetzen.

Google Log-in-Abläufe

In diesem Abschnitt werden die verschiedenen Abläufe beschrieben, die mit Google Log-in möglich sind.

Ablauf 1: Nutzerinformationen sind in Ihrem System vorhanden

Das folgende Diagramm zeigt den End-to-End-Ablauf mit GSI, wenn die Informationen des Nutzers bereits in Ihrem System vorhanden sind:

In diesem Fall gehen Sie zur Systemszene zur Kontoverknüpfung über und geben eine individuelle Begründung an. In dieser Szene wird der Nutzer um die Berechtigung zum Zugriff auf seine Google-Profilinformationen gebeten.

Nachdem der Nutzer eingewilligt hat, sendet Assistant eine Anfrage mit den Profilinformationen für user@gmail.com. In diesem Fall stimmen die Informationen im Google-ID-Token für user@gmail.com mit einem Konto in deinem System überein, sodass die Identität des Nutzers in deiner Aktion automatisch mit diesem Konto verknüpft wird. Der Webhook kann dann die übliche Reihenfolge des Nutzers aus einer Datenbank lesen und entsprechend reagieren.

Ablauf 2: Die Daten des Nutzers sind nicht in Ihrem System vorhanden

Das folgende Diagramm zeigt den End-to-End-Ablauf mit GSI, wenn die Nutzerinformationen nicht in Ihrem System vorhanden sind:

In diesem Fall stimmen die im Google-ID-Token für user@gmail.com enthaltenen Informationen mit keinem Konto in Ihrem System überein. Daher fragt Assistant den Nutzer, ob er ein neues Konto erstellen möchte. Der Nutzer kann die Kontoerstellung per Sprachbefehl durchführen, anstatt auf ein überprüftes Gerät zu wechseln.

Wenn der Nutzer der Erstellung eines Kontos zustimmt, verwendet Ihr Dienst die Informationen im ID-Token (Name und E-Mail-Adresse des Nutzers) zum Erstellen eines Kontos für den Nutzer. Sobald das Konto erstellt wurde, wird die Identität des Nutzers in deiner Aktion mit seinem neuen Google-Konto verknüpft.

In diesem Fall hat der Nutzer keine übliche Reihenfolge, da er neu im Dienst ist. Deine Aktion fragt daher nach, was er bestellen möchte. Sie können den Nutzer auch fragen, ob er seine letzte Bestellung als üblich festlegen möchte.