Typ połączenia OAuth i Logowania przez Google dodaje Logowanie przez Google Łączenie kont przez OAuth. Jeśli użyjesz tego typu połączenia w akcji, rozpoczyna się od Logowania przez Google, które pozwala sprawdzić, czy użytkownik informacje o profilu są zapisane w systemie. Jeśli tak się nie stanie, standardowy przepływ OAuth Jeśli połączysz te dwa typy połączeń, użytkownicy będą mogli swoją tożsamość w Akcji za pomocą konta Google lub konta innego niż Google. Jeśli mogą również utworzyć nowe konto za pomocą profilu Google, i informacjami o nich.
Protokół OAuth i Logowanie przez Google to zalecane rozwiązanie do łączenia kont, jeśli obowiązują następujące zasady:
- Masz Akcję obejmującą wiele platform (na przykład Akcja działa w przypadku aplikacji na Androida).
- Masz już system uwierzytelniania i chcesz zezwolić użytkownikom na połączyć swoją tożsamość z kontami spoza Google. Jeśli na przykład oferujesz programu lojalnościowego i chcesz mieć pewność, że użytkownik nie straci punktów zebranych na obecnym koncie.
Aby sprawdzić, czy protokół OAuth i Logowanie przez Google to dla Ciebie odpowiednie rozwiązanie, zapoznaj się z Strona Wybierz rodzaj połączenia kont.
Kluczowe terminy
Zanim przeczytasz, jak działa OAuth i Logowanie przez Google, zapoznaj się z tymi informacjami z następującymi warunkami:
- Token identyfikatora Google: podpisane potwierdzenie tożsamości użytkownika, które zawiera podstawowe informacje z profilu Google użytkownika (imię i nazwisko, adres e-mail oraz zdjęcie profilowe). Token tożsamości Google to Token internetowy JSON (JWT). Oto przykład zdekodowanego tokena:
{
"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"
}
- Intencja pomocnicza dotycząca logowania się na konto: intencja pomocnicza, którą wywołujesz, aby poprosić o zalogowanie się na konto.
proces łączenia kont realizowany przez Asystenta. Więcej informacji:
Logowanie na konto
- Ciąg kontekstowy: niestandardowy ciąg znaków, który musisz dodać do konta. intencję pomocniczą dotyczącą logowania, która informuje użytkownika, dlaczego chcesz połączyć konto. jego konto.
- Przepływ kodu autoryzacji: przepływ OAuth 2.0, który możesz wdrożyć
OAuth + Logowanie przez Google. Ten proces wymaga 2 punktów końcowych:
- Punkt końcowy autoryzacji: punkt końcowy, w którym wyświetla się interfejs logowania. użytkownikom, którzy nie są jeszcze zalogowani. Odnotowuje zgodę na poprosił o dostęp w postaci krótkotrwałego kodu autoryzacji.
- Punkt końcowy wymiany tokenów: ten punkt końcowy odpowiada za 2 typy
giełd:
- Wymienia kod autoryzacji na długotrwały token odświeżania i krótkotrwały token dostępu. Ta wymiana ma miejsce, gdy użytkownik przechodzi przez proces łączenia kont.
- Wymienia długoterminowy token odświeżania zapewniający krótkotrwały dostęp token. Ta wymiana ma miejsce, gdy Google potrzebuje nowego tokena dostępu ponieważ straciła ważność.
- Przepływ kodu niejawnego: przepływ OAuth 2.0, który możesz wdrożyć OAuth + Logowanie przez Google. Ten proces wymaga tylko punktu końcowego autoryzacji. Podczas tego procesu Google otwiera punkt końcowy autoryzacji w przeglądarki. Jeśli logowanie się powiedzie, zwrócisz do adresu Google. Ten token dostępu jest teraz uwzględniany w każdym żądaniu wysyłanym z Asystent Twojej akcji.
- Token dostępu: token, który upoważnia usługę do uzyskiwania dostępu do części danych użytkownika. Tokeny dostępu są powiązane z poszczególnymi użytkownikami.
- Token odświeżania:token, który jest wymieniany na nowy token dostępu po krótkotrwały token dostępu wygasł.
Wymagania wstępne
Aby korzystać z uwierzytelniania OAuth i Logowanie przez Google, potrzebne są:
- Serwer OAuth 2
Punkt końcowy wymiany tokenów
Punkt końcowy wymiany tokenów musi być rozszerzony, aby obsługiwać protokoły automatycznego łączenia i tworzenia konta z tokena identyfikatora (np. dodaj parametry
intent=get
iintent=create
w żądaniach do funkcji ten punkt końcowy).
Jak to działa
W tej sekcji opisano ogólny proces korzystania z protokołu OAuth i Logowanie przez Google. W sekcji Przepływy OAuth i GSI opisujemy różne procesy, które mogą wystąpić, w zależności od tego, czy włączysz, czy wyłączysz tworzenia konta za pomocą głosu oraz b) niezależnie od tego, czy użyjesz przez kod autoryzacji.
Podstawowy proces jest następujący:
- Akcja prosi użytkownika o zgodę na dostęp do jego profilu Google.
- Gdy użytkownik wyrazi zgodę, akcja otrzymuje token identyfikatora Google, który zawiera informacje z profilu Google użytkownika.
- Aby odczytać zawartość profilu, musisz zweryfikować i zdekodować token.
- Akcja używa tego tokena, aby sprawdzić, czy profil użytkownika Google
znajduje się w Twoim systemie.
- Jeśli tak, użytkownik zalogował się już w Twoim systemie przy użyciu swojego konto Google i Asystent łączą tożsamość użytkownika z jego kontem Konto Google. Użytkownik może kontynuować rozmowę z Asystenta z połączonym kontem.
- Jeśli nie, przejdź do kroku 5.
- Użytkownik może: a) utworzyć nowe konto ze swoim profilem Google. lub b) zalogować się do systemu za pomocą innego konta. opcje wyświetlane użytkownikowi różnią się w zależności od tego, czy włączysz wyłącz funkcję tworzenia kont za pomocą głosu. Jeśli użytkownik zaloguje się na z innego konta, rozpocznie się standardowy przepływ protokołu OAuth.
- Gdy użytkownik utworzy nowe konto lub zaloguje się u innego dostawcy, zwraca ona token dostępu do Google. (Jeśli używasz tagu procesu autoryzacji, usługa zwraca też token odświeżania).
- Użytkownik może teraz kontynuować rozmowę z Asystentem, używając swojego z kontem Google Analytics.
Przepływy OAuth i GSI
W tej sekcji omawiamy różne przepływy, które mogą wystąpić w przypadku protokołu OAuth i GSI. Diagramy te omawiają przepływy występujące w przepływie kodu autoryzacji. zamiast niejawnego przepływu kodu i załóżmy, że używasz Dialogflow jako rozwiązanie do rozpoznawania języka naturalnego w Akcji.
Każdy przepływ obejmuje te typowe czynności po wywołaniu Twojej akcji przez użytkownika:
W ramach tego procesu wywołujesz intencję pomocniczą actions.intent.SIGN_IN
za pomocą
ciągu kontekstu, który możesz dostosować. Ta intencja prosi użytkownika o zgodę na dostęp
swoje informacje z profilu Google. Gdy użytkownik wyrazi zgodę, Asystent wysyła
żądanie zawierające informacje o profilu użytkownika user@gmail.com
.
Procedury po tym punkcie różnią się w zależności od tego, czy skonfigurujesz konto. za pomocą Voice oraz tego, czy informacje użytkownika znajdują się już w systemu. Każdy z tych przepływów opisano w kolejnych sekcjach.
Procesy z włączonym tworzeniem konta głosowego
Ta sekcja zawiera szczegółowe informacje o procesach łączenia kont, które mogą wystąpić po włączeniu tworzenia konta za pomocą poleceń głosowych.
Proces 1. Informacje o użytkowniku istnieją w Twoim systemie
W tym przypadku w backendzie istnieje użytkownik reprezentowany przez user@gmail.com
,
tak aby punkt końcowy wymiany tokenów zwraca token użytkownika. Adres URL
Tożsamość użytkownika w akcji jest teraz połączona z kontem Google tego użytkownika. Adres URL
pierwotne żądanie („Order my standard”) jest zgodne z niestandardowym żądaniem o podobnych zamiarach order_drink.
.
Webhook obsługuje teraz realizację dopasowanej intencji i wysyła zapytania do
dla standardowego zamówienia user@gmail.com
. Użytkownik może następnie kontynuować
rozmowę z Asystentem.
Proces 2. Użytkownik nie istnieje, a użytkownik tworzy konto
Ponieważ masz włączone tworzenie kont za pomocą poleceń głosowych, a user@gmail.com
nie
istniejący backend, Asystent pyta użytkownika, czy chce
jeden z tych elementów:
a) Utworzysz w swoim systemie nowe konto, używając informacji z profilu Google. które można osiągnąć za pomocą głosu.
b) Zaloguj się do systemu za pomocą innego konta
W takim przypadku użytkownik postanawia utworzyć nowe konto za pomocą głosu. Połączenia z Google punktu końcowego wymiany tokenów usługi z żądaniem utworzenia konta. Żądanie zawiera token identyfikatora Google, który obejmuje potrzebne komponenty aby utworzyć nowe konto. Następnie możesz użyć informacji z tego tokena (nazwę i adres e-mail użytkownika), aby utworzyć konto dla użytkownika.
Po utworzeniu konta usługa zwraca token dostępu i odświeża dane.
dla nowo utworzonego konta. Tożsamość użytkownika w akcji to teraz
powiązane z ich kontem Google. Pierwotna prośba użytkownika („Zamów zwykłe zamówienie”)
pasuje do intencji niestandardowej order_drink.
Twój webhook obsługuje
zrealizowanie dopasowanej intencji i zapytań w bazie danych
Zwykła kolejność w usłudze user@gmail.com
, która jeszcze nie istnieje, ponieważ użytkownik jest nowy.
Akcja może wtedy zapytać użytkownika, co chce zamówić.
Proces 3. Użytkownik nie istnieje, a użytkownik loguje się na inne konto
Masz włączone głosowe tworzenie konta, więc Asystent pyta użytkownika, czy klient chce wykonać jedną z tych czynności:
a) Utworzysz w swoim systemie nowe konto, używając informacji z profilu Google. które można osiągnąć za pomocą głosu.
b) Zaloguj się do systemu za pomocą innego konta
W takim przypadku użytkownik loguje się na inne konto, uruchamia standardowy przepływ OAuth. Jeśli proces rozpoczął się na urządzeniu obsługującym tylko głosowe, Google przenosi wykonanie na telefon. Następnie Google otwiera punktu końcowego autoryzacji w przeglądarce użytkownika, a w zależności od użytkownik może zdecydować, czy a) zalogować się do Twojej usługi za pomocą istniejące konto, które nie korzysta z Logowania przez Google, lub b) utworzyć nowe konto; korzystając z usług innego dostawcy. Więcej informacji o przepływie protokołu OAuth znajdziesz tutaj: Przewodnik po pojęciach związanych z protokołem OAuth.
Po zweryfikowaniu danych logowania użytkownika usługa zwraca token dostępu
i token odświeżania do Google. Tożsamość użytkownika w akcji jest teraz połączona
z kontem innym niż Google. Pierwotne żądanie użytkownika („Zamów moje zwykłe zamówienie”) jest zgodne z pierwotnym żądaniem użytkownika.
intencja niestandardowa order_drink.
Twój webhook obsługuje następnie realizację:
zgodne intencję i zapyta Twoją bazę danych o zwykłą kolejność elementów user@gmail.com
,
który jeszcze nie istnieje, ponieważ użytkownik jest nowy. Akcja może wtedy poprosić o
co chce zamówić lub poprosić o złożenie zamówienia.
Procedura z wyłączonym tworzeniem konta za pomocą głosu
Ta sekcja zawiera szczegółowe informacje o procesie łączenia kont, który może wystąpić, jeśli wyłączysz tworzenia konta za pomocą poleceń głosowych.
Proces 4. Informacje o użytkowniku nie istnieją
Tworzenie kont nie zostało włączone za pomocą poleceń głosowych, a użytkownik nie istnieje na Twoim i rozpoczyna się standardowy przepływ protokołu OAuth. Asystent otwiera punktu końcowego autoryzacji w przeglądarce użytkownika (jeśli proces rozpoczął się na urządzeniu głosowym Google przenosi wykonanie na urządzenie z ekranem). Użytkownik może a) zalogować się u innego dostawcy, jeśli jest zarejestrowany korzystasz z usługi za pomocą innego konta lub b) utwórz nowe konto za pomocą do innego dostawcy. Więcej informacji o przepływie protokołu OAuth znajdziesz tutaj: Przewodnik po pojęciach związanych z protokołem OAuth.
Po zweryfikowaniu danych logowania użytkownika usługa zwraca token dostępu
i token odświeżania do Google. Tożsamość użytkownika w akcji jest teraz połączona
z kontem innym niż Google. Pierwotne żądanie użytkownika („Zamów moje zwykłe zamówienie”) jest zgodne z pierwotnym żądaniem użytkownika.
intencja niestandardowa order_drink.
Twój webhook obsługuje następnie realizację:
zgodne intencję i zapyta Twoją bazę danych o zwykłą kolejność elementów user@gmail.com
,
który jeszcze nie istnieje, ponieważ użytkownik jest nowy. Akcja może wtedy poprosić o
aby skonfigurować standardową kolejność.