Beim Verknüpfungstyp OAuth und Google Log-in wird Google Log-in 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.
OAuth und Google Log-in sind die empfohlene Lösung zur Kontoverknüpfung, 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.
Informationen dazu, ob OAuth und Google Log-in die richtige Lösung für Sie sind, finden Sie in der Seite Art der Kontoverknüpfung auswählen
Wichtige Begriffe
Bevor Sie sich mit der Funktionsweise von OAuth und Google Log-in 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"
}
- Account Sign-in Helper Intent:Ein Hilfs-Intent, den Sie anfordern,
einen Kontoverknüpfungsvorgang über Assistant aufzurufen. Weitere Informationen finden Sie unter
Kontoanmeldung:
- Kontextstring:benutzerdefinierter String, den Sie dem Konto hinzufügen Anmeldehelfer-Intent, der dem Nutzer mitteilt, warum Sie eine Verknüpfung erstellen möchten sein Konto.
- Vorgang mit Autorisierungscode:Ein OAuth 2.0-Vorgang, den Sie mit
OAuth + Google Log-in. Für diesen Ablauf sind zwei Endpunkte erforderlich:
<ph type="x-smartling-placeholder">
- </ph>
- 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>
- Tauscht einen Autorisierungscode gegen ein langlebiges Aktualisierungstoken aus und ein kurzlebiges Zugriffstoken. Dieser Austausch findet statt, wenn Nutzer*innen durchläuft die Kontoverknüpfung.
- 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 OAuth + Google Log-in. 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 vom 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 OAuth und Google Log-in verwenden zu können, benötigen Sie Folgendes:
- Einen OAuth 2-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
undintent=create
in Anfragen zu diesem Endpunkt).
Funktionsweise
In diesem Abschnitt wird der allgemeine Ablauf für OAuth und Google Log-in beschrieben. Der folgende Abschnitt OAuth- und GSI-Abläufe beschreibt 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:
- Deine Aktion bittet den Nutzer um Einwilligung für den Zugriff auf sein Google-Profil.
- Nachdem der Nutzer seine Einwilligung gegeben hat, erhält deine Aktion ein Google-ID-Token, das enthält die Google-Profilinformationen des Nutzers.
- Sie müssen das Token validieren und decodieren, um den Profilinhalt lesen zu können.
- Deine Aktion prüft anhand dieses Tokens, ob das Google-Profil des Nutzers
Daten in Ihrem System vorhanden sind.
- 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 dem Assistant mit verknüpftem Konto.
- Ist dies nicht der Fall, fahren Sie mit Schritt 5 fort.
- 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.
- 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.
- Der Nutzer kann die Unterhaltung mit Assistant jetzt -Konto verknüpft ist.
OAuth- und GSI-Abläufe
In diesem Abschnitt werden die verschiedenen Abläufe beschrieben, die mit OAuth und GSI ausgeführt werden können. Diese Diagramme veranschaulichen die Abläufe im Zusammenhang mit dem Vorgang mit dem Autorisierungscode. und nicht auf den impliziten Codeablauf, und gehen Sie davon aus, dass Sie Dialogflow als Natural Language Understanding für deine Aktion erstellt.
Jeder Ablauf enthält die folgenden allgemeinen Schritte, nachdem der Nutzer Ihre Aktion aufgerufen hat:
Im obigen Ablauf rufen Sie den Hilfs-Intent actions.intent.SIGN_IN
mit einem
Kontextstring, den Sie anpassen. Bei diesem Intent 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 („Bestellen Sie mein Angebot“) entspricht dem benutzerdefinierten Intent „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 benutzerdefinierten 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 OAuth-Konzept
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
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. Assistant öffnet 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 OAuth-Konzept
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
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.