Przewodnik po koncepcji logowania Google opartego na protokole OAuth

Oparte na protokole OAuth logowanie do Google z funkcją „Uproszczone” Typ połączenia 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.

Uproszczone łączenie jest zalecanym rozwiązaniem 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 uproszczenie procesu łączenia jest dla Ciebie odpowiednim rozwiązaniem, zapoznaj się z Strona Wybierz rodzaj połączenia kont.

Kluczowe terminy

Zanim zapoznasz się z informacjami o tym, jak działa uproszczone łączenie, 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"
}
  • user.verificationStatus: właściwość ustawiana przez system w celu wskazywania, czy W bieżącej sesji ma zweryfikowanego użytkownika.

  • user.accountLinkingStatus: właściwość ustawiana przez system w celu wskazywania, czy użytkownik w bieżącej sesji ma połączoną tożsamość.

  • Scena systemowa łączenia kont: wstępnie zdefiniowana scena z potwierdzeniem. procesu łączenia kont i można go dostosować do konkretnych przypadków użycia.

  • Przepływ kodu autoryzacji: przepływ OAuth 2.0, który możesz wdrożyć Uproszczone łączenie kont. 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:
      1. 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.
      2. 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ć Uproszczone łączenie kont. 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 uproszczonego połączenia, potrzebne są:

  • Serwer OAuth 2.0
  • 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 i intent=create w żądaniach do funkcji ten punkt końcowy).

Jak to działa

W tej sekcji opisano ogólny proces uproszczonego łączenia kont. W sekcji Uproszczone tworzenie linków znajdziesz 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:

  1. Akcja prosi użytkownika o zgodę na dostęp do jego profilu Google.
  2. Gdy użytkownik wyrazi zgodę, akcja otrzymuje token identyfikatora Google, który zawiera informacje z profilu Google użytkownika.
  3. Aby odczytać zawartość profilu, musisz zweryfikować i zdekodować token.
  4. Akcja używa tego tokena, aby sprawdzić, czy profil użytkownika Google znajduje się w Twoim systemie.
    1. 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.
    2. Jeśli nie, przejdź do kroku 5.
  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.
  6. 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).
  7. Użytkownik może teraz kontynuować rozmowę z Asystentem, używając swojego z kontem Google Analytics.

Uproszczone łączenie procesów

W tej sekcji omawiamy różne procesy, które mogą wystąpić w przypadku uproszczonych połączeń. Diagramy te omawiają przepływy występujące w przepływie kodu autoryzacji. zamiast przepływu kodu implicit i zakładamy, że używasz Actions Builder.

Każdy przepływ obejmuje te typowe czynności po wywołaniu Twojej akcji przez użytkownika:

W ramach procesu powyżej przejdziesz na scenę systemową łączenia kont i podasz z niestandardowym uzasadnieniem. Scena prosi użytkownika o pozwolenie 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 intencją użytkownika 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 istnieje już w backendzie, 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 użytkownika. order_drink. 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ącego konta, które nie używa 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 łączeniem przez 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 użytkownika order_drink. Twój webhook obsługuje teraz 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 łączeniem przez 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 użytkownika order_drink. Twój webhook obsługuje teraz 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ść.