Konzeptleitfaden für die OAuth-basierte Google Log-in-Verknüpfung

Optimiertes OAuth-basiertes Google Log-in wird Google Log-in über OAuth-basierte Kontoverknüpfung. Wenn Sie diesen Verknüpfungstyp in Ihrer Aktion verwenden, der mit Google Log-in beginnt, womit Sie prüfen können, in Ihrem System vorhanden sind. Falls nicht, wird ein Standard-OAuth-Vorgang beginnt. Durch eine Kombination dieser beiden Verknüpfungstypen können Ihre Nutzer Identität in deiner Aktion mit einem Google-Konto oder einem Nicht-Google-Konto zu teilen. Wenn können sie auch ein neues Konto mit ihrem Google-Profil erstellen. Informationen.

Optimierte Kontoverknüpfungen werden empfohlen, gilt Folgendes:

  • Eine Aktion umfasst mehrere Plattformen, z. B. wenn deine Aktion funktioniert mit einer Android-App).
  • Sie haben ein Authentifizierungssystem und möchten es Nutzern ermöglichen, und ihre Identitäten mit Konten von Drittanbietern zu verknüpfen. Wenn Sie beispielsweise eines Treuepunkteprogramms haben und sicherstellen möchten, dass die Nutzenden Punkte, die sie im bestehenden Konto gesammelt haben.

Wenn Sie prüfen möchten, ob die optimierte Verknüpfung die richtige Lösung für Sie ist, Seite Art der Kontoverknüpfung auswählen

Wichtige Begriffe

Bevor Sie sich mit der Funktionsweise der optimierten Verknüpfung vertraut machen, sollten Sie sich damit vertraut machen. mit den folgenden Begriffen:

  • Google-ID-Token: Eine signierte Bestätigung der Identität eines Nutzers, die Folgendes enthält: die grundlegenden Google-Profilinformationen eines Nutzers (Name, E-Mail-Adresse und Profilbild) angezeigt. Ein Google-ID-Token ist ein JSON-Webtoken (JWT). Das folgende Beispiel zeigt 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:Mit dieser Eigenschaft wird vom System festgelegt, die aktuelle Sitzung einen bestätigten Nutzer hat.

  • user.accountLinkingStatus:Mit dieser Eigenschaft wird vom System festgelegt, Nutzer in der aktuellen Sitzung eine verknüpfte Identität hat.

  • Kontoverknüpfungssystem:Eine vordefinierte Szene, in der die Bestätigung implementiert wird. für die Kontoverknüpfung und kann an bestimmte Anwendungsfälle angepasst werden.

  • Vorgang mit Autorisierungscode:Ein OAuth 2.0-Vorgang, den Sie mit Optimierte Verknüpfung Für diesen Ablauf sind zwei Endpunkte erforderlich:

    • Autorisierungsendpunkt:Der Endpunkt, auf dem die Anmelde-UI zu sehen ist. die noch nicht angemeldet sind. Er zeichnet die Zustimmung zu den Zugriff in Form eines kurzlebigen Autorisierungscodes angefordert hat.
    • Endpunkt für den Tokenaustausch:Dieser Endpunkt ist für zwei Typen verantwortlich. der Anzeigenplattformen: <ph type="x-smartling-placeholder">
        </ph>
      1. Tauscht einen Autorisierungscode gegen ein langlebiges Aktualisierungstoken aus und ein kurzlebiges Zugriffstoken. Dieser Austausch findet statt, wenn Nutzer*innen durchläuft die Kontoverknüpfung.
      2. Taugt ein langlebiges Aktualisierungstoken gegen einen kurzlebigen Zugriff aus Token. Dieser Austausch erfolgt, wenn Google ein neues Zugriffstoken benötigt weil das abgelaufen ist.
  • Impliziter Codefluss:Ein OAuth 2.0-Vorgang, den Sie mit Optimierte Verknüpfung Für diesen Ablauf ist nur ein Autorisierungsendpunkt erforderlich. Während dieses Vorgangs öffnet Google Ihren Autorisierungsendpunkt im Browser. Wenn die Anmeldung erfolgreich ist, geben Sie ein langlebiges Zugriffstoken an Google. Dieses Zugriffstoken ist jetzt in jeder Anfrage enthalten, die gesendet wird von Assistant für deine Aktion.

  • Zugriffstoken: ein Token, das Ihren Dienst für den Zugriff auf Teile eines Nutzerdaten zu erheben. Zugriffstokens sind jedem einzelnen Nutzer zugeordnet.

  • Aktualisierungstoken:Ein Token, das nach dem kurzlebiges Zugriffstoken abgelaufen ist.

Vorbereitung

Um den Verknüpfungstyp "Optimiert" zu verwenden, benötigen Sie Folgendes:

  • Einen OAuth 2.0-Server
  • Einen Endpunkt für den Tokenaustausch

    Der Tokenaustausch-Endpunkt muss erweitert werden, um Unterstützung für die Protokolle für die automatische Verknüpfung und Kontoerstellung aus einem ID-Token (Fügen Sie also die Parameter intent=get und intent=create in Anfragen zu diesem Endpunkt).

Funktionsweise

In diesem Abschnitt wird der allgemeine Ablauf für die optimierte Verknüpfung beschrieben. Im folgenden Abschnitt Optimierte Verknüpfung wird beschrieben, Die verschiedenen Abläufe, die basierend auf a) unabhängig davon auftreten können, ob Sie und b) ob Sie die implizite oder Vorgang mit Autorisierungscode.

Der grundlegende Ablauf sieht so aus:

  1. Deine Aktion bittet den Nutzer um Einwilligung für den Zugriff auf sein Google-Profil.
  2. Nachdem der Nutzer seine Einwilligung gegeben hat, erhält deine Aktion ein Google-ID-Token, das enthält die Google-Profilinformationen des Nutzers.
  3. Sie müssen das Token validieren und decodieren, um den Profilinhalt lesen zu können.
  4. Deine Aktion prüft anhand dieses Tokens, ob das Google-Profil des Nutzers Daten in Ihrem System vorhanden sind.
    1. Ist dies der Fall, hat sich der Nutzer bereits mit seinem Google-Konto verknüpft haben und Assistant die Identität des Nutzers mit seinem Google-Konto. Der Nutzer kann die Unterhaltung mit Assistant mit verknüpftem Konto.
    2. Ist dies nicht der Fall, fahren Sie mit Schritt 5 fort.
  5. Der Nutzer kann entweder a) ein neues Konto mit seinem Google-Profil erstellen oder b) sich mit einem anderen Konto in Ihrem System anmelden. Die die dem Nutzer angezeigt werden, je nachdem, ob Sie Kontoerstellung per Spracheingabe deaktivieren Wenn der Nutzer sich in Ihrem mit einem anderen Konto verknüpft ist, beginnt der standardmäßige OAuth-Ablauf.
  6. Nachdem der Nutzer ein neues Konto erstellt oder sich bei einem anderen Anbieter angemeldet hat, Ihr Dienst ein Zugriffstoken an Google zurückgibt. (Wenn Sie den Vorgang mit Autorisierungscode ausführen, gibt Ihr Dienst auch ein Aktualisierungstoken zurück.
  7. Der Nutzer kann die Unterhaltung mit Assistant jetzt -Konto verknüpft ist.

Optimierte Verknüpfung

In diesem Abschnitt werden die verschiedenen Abläufe beschrieben, die bei der optimierten Verknüpfung möglich sind. Diese Diagramme veranschaulichen die Abläufe im Zusammenhang mit dem Vorgang mit dem Autorisierungscode. anstelle des impliziten Codeablaufs. Nehmen wir an, Sie verwenden Actions Builder.

Jeder Ablauf enthält die folgenden allgemeinen Schritte, nachdem der Nutzer Ihre Aktion aufgerufen hat:

Im obigen Ablauf wechseln Sie zum System zur Kontoverknüpfung und stellen eine individuelle Begründung. In der Szene wird der Nutzer um die Berechtigung zum Zugriff gebeten. ihre Google-Profilinformationen. Nachdem der Nutzer zugestimmt hat, sendet Assistant Eine Anfrage, die die Profilinformationen für user@gmail.com enthält.

Die weiteren Abläufe danach hängen davon ab, ob Sie das Konto konfigurieren oder nicht. Verknüpfung mit der Stimme herstellen und ob die Daten des Nutzers bereits in Ihrer System. Jeder dieser Abläufe wird in den folgenden Abschnitten beschrieben.

Abläufe mit aktivierter Voice-Kontoerstellung

In diesem Abschnitt werden die Abläufe für die Kontoverknüpfung beschrieben, die möglich sind, wenn du Kontoerstellung per Spracheingabe.

Ablauf 1: Nutzerinformationen sind in Ihrem System vorhanden

In diesem Fall ist der durch user@gmail.com dargestellte Nutzer in Ihrem Back-End vorhanden. sodass der Tokenaustausch-Endpunkt ein Token für den Nutzer zurückgibt. Die Identität in deiner Aktion ist jetzt mit ihrem Google-Konto verknüpft. Die Die ursprüngliche Anfrage („Order my Stadia“) entspricht der Nutzerabsicht.order_drink. Der Webhook kümmert sich dann um die Auftragsausführung und fragt den Datenbank für die übliche Reihenfolge von user@gmail.com. Der Nutzer kann dann Unterhaltung mit Assistant.

Ablauf 2: Die Daten des Nutzers sind nicht vorhanden und der Nutzer erstellt ein Konto

Weil Sie die Kontoerstellung per Spracheingabe aktiviert haben und user@gmail.com dies nicht tut in Ihrem Backend vorhanden sind, fragt Assistant den Nutzer, ob er eine der folgenden Optionen:

a) ein neues Konto in Ihrem System mit den Google-Profilinformationen zu erstellen, Dies geschieht per Spracheingabe.

b) Mit einem anderen Konto in Ihrem System anmelden

In diesem Fall entscheidet sich der Nutzer, ein neues Konto per Spracheingabe zu erstellen. Google-Anrufe den Tokenaustauschendpunkt Ihres Dienstes mit einer Anfrage zum Erstellen eines Kontos. Diese Anfrage enthält das Google-ID-Token, das die erforderlichen Komponenten enthält. um ein neues Konto zu erstellen. Sie können dann die Informationen aus diesem Token verwenden, (Name und E-Mail-Adresse des Nutzers), um ein Konto für den Nutzer zu erstellen.

Nachdem das Konto erstellt wurde, gibt der Dienst ein Zugriffstoken zurück und aktualisiert Token für das neu erstellte Konto. Die Identität des Nutzers in deiner Aktion ist jetzt die mit ihrem Google-Konto verknüpft sind. Die ursprüngliche Anfrage des Nutzers („Meinen üblichen Betrag bestellen“) stimmt mit dem Nutzer-Intent überein. order_drink. Der Webhook verarbeitet dann die Ausführung des zugeordneten Intents und Abfragen von Ihrer Datenbank Die übliche Bestellung von user@gmail.com, die noch nicht existiert, da der Nutzer neu ist. Deine Aktion kann den Nutzer dann fragen, was er bestellen möchte.

Ablauf 3: Die Daten des Nutzers sind nicht vorhanden und der Nutzer meldet sich mit einem anderen Konto an

Du hast die Kontoerstellung per Sprachbefehl aktiviert. Assistant fragt den Nutzer daher, ob eine der folgenden Aktionen ausführen:

a) ein neues Konto in Ihrem System mit den Google-Profilinformationen zu erstellen, Dies geschieht per Spracheingabe.

b) Mit einem anderen Konto in Ihrem System anmelden

In diesem Fall meldet sich der Nutzer mit einem anderen Konto an, startet den standardmäßigen OAuth-Ablauf. Wenn der User Flow auf einem Sprachgerät gestartet wurde, Google überträgt die Ausführung an ein Smartphone. Anschließend öffnet Google Ihren Autorisierungsendpunkt im Browser des Nutzers und, je nach Ihrem kann der Nutzer auswählen, ob er sich mit a) bei Ihrem Dienst mit Ein bestehendes Konto, für das Google Log-in nicht verwendet wird, oder b) ein neues Konto erstellen über einen anderen Anbieter. Weitere Informationen zum OAuth-Ablauf finden Sie in der Leitfaden zum Konzept der OAuth-Verknüpfung

Nach der Überprüfung der Anmeldedaten des Nutzers gibt der Dienst ein Zugriffstoken zurück. und ein Aktualisierungstoken an Google. Die Identität des Nutzers in deiner Aktion ist jetzt verknüpft mit einem Nicht-Google-Konto verknüpft ist. Die ursprüngliche Anfrage des Nutzers („Meinen üblichen Betrag bestellen“) stimmt überein mit Nutzer-Intent order_drink.. Der Webhook übernimmt dann die Ausführung von den zugeordneten Intent und fragt Ihre Datenbank nach der üblichen Reihenfolge von user@gmail.com ab. der noch nicht existiert, da der Nutzer neu ist. Deine Aktion kann dann Nutzende, was sie bestellen möchten, oder bitten Sie sie, ihre übliche Bestellung aufzugeben.

Ablauf mit deaktivierter Voice-Kontoerstellung

In diesem Abschnitt wird beschrieben, wie die Kontoverknüpfung erfolgen kann, wenn Sie Folgendes deaktivieren: Kontoerstellung per Spracheingabe.

Ablauf 4: Die Informationen des Nutzers sind nicht vorhanden

Sie haben die Kontoerstellung per Spracheingabe nicht aktiviert und der Nutzer ist nicht in Ihrer damit der standardmäßige OAuth-Ablauf beginnt. öffnet Assistant Ihr Autorisierungsendpunkt im Browser des Nutzers (wenn der Vorgang mit einem Nur-Sprachbefehl gestartet wurde) Gerät, überträgt Google die Ausführung an ein Gerät mit einem Bildschirm). Der Nutzer kann sich entweder a) über einen anderen Anbieter anmelden, falls dieser Ihren Dienst mit einem anderen Konto nutzen oder b) ein neues Konto mit einem von einem anderen Anbieter. Weitere Informationen zum OAuth-Ablauf finden Sie in der Leitfaden zum Konzept der OAuth-Verknüpfung

Nach der Überprüfung der Anmeldedaten des Nutzers gibt der Dienst ein Zugriffstoken zurück. und ein Aktualisierungstoken an Google. Die Identität des Nutzers in deiner Aktion ist jetzt verknüpft mit einem Nicht-Google-Konto verknüpft ist. Die ursprüngliche Anfrage des Nutzers („Meinen üblichen Betrag bestellen“) stimmt überein mit Nutzer-Intent order_drink.. Der Webhook übernimmt dann die Ausführung von den zugeordneten Intent und fragt Ihre Datenbank nach der üblichen Reihenfolge von user@gmail.com ab. der noch nicht existiert, da der Nutzer neu ist. Deine Aktion kann dann damit Nutzende ihre übliche Reihenfolge einrichten können.