Przewodnik po logowaniu przez Google

Logowanie przez Google (GSI) w Asystencie zapewnia najbardziej płynne połączenie. dla użytkowników i jest najłatwiejszy do wdrożenia przez programistów. Dzięki GSI akcja może poprosić o dostęp do profilu Google użytkownika podczas do rozmowy i, jeśli użytkownik wyrazi zgodę, otrzymają jego imię i nazwisko, adres e-mail, i zdjęcie profilowe. Akcja może następnie wykorzystać te informacje, aby sprawdzić, czy Użytkownik ma konto Google w Twoim systemie. Jeśli nie, akcja pyta użytkownika, czy i chce utworzyć w systemie nowe konto na podstawie danych informacje o profilu.

GSI to zalecane rozwiązanie do łączenia kont, jeśli:

  • Nie masz systemu uwierzytelniania lub oczekujesz, że wszystkie mieć konto Google. Jeśli na przykład akcja to wśród użytkowników Asystenta, wszyscy użytkownicy będą mieli dostęp kont.
  • Masz istniejący system uwierzytelniania i chcesz połączyć tylko tych użytkowników, którzy zalogowanych w systemie za pomocą kont Google.

Aby sprawdzić, czy GSI jest dla Ciebie odpowiednim rozwiązaniem, zapoznaj się z Strona Wybierz rodzaj połączenia kont.

Kluczowe terminy

Zanim zapoznasz się z opisem działania GSI, zapoznaj się z tymi terminami:

  • 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.

Jak to działa

Podstawowy schemat dla GSI 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. Zweryfikuj i zdekoduj token, aby odczytać zawartość profilu. Jeśli używasz tagu biblioteka Actions on Google Fulfillment dla Node.js, zweryfikuje i zdekoduje 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. Użytkownik może kontynuować rozmowę z: Asystent z jego tożsamością powiązaną z kontem Google.
    2. Jeśli nie, użytkownik może utworzyć w Twoim systemie nowe konto na koncie informacje zawarte w tokenie tożsamości Google. Użytkownik może wtedy kontynuować rozmowę z Asystentem, mając połączone nowe konto.

Procesy logowania w Google

W tej sekcji opisujemy różne procesy, które mogą wystąpić w przypadku Logowania przez Google.

Proces 1. Informacje o użytkowniku istnieją w Twoim systemie

Poniższy diagram przedstawia cały proces, który występuje w GSI, gdy w Twoim systemie są już informacje o użytkowniku:

W takim przypadku należy przejść do sceny systemowej łączenia kont i podać z niestandardowym uzasadnieniem. Ta scena prosi użytkownika o zezwolenie na uzyskać dostęp do informacji z profilu Google.

Gdy użytkownik wyrazi zgodę, Asystent wysyła żądanie zawierające informacje na profilu użytkownika user@gmail.com. W tym przypadku informacja zawarte w tokenie identyfikatora Google domeny user@gmail.com pasuje do konta w Twojego systemu, dzięki czemu tożsamość użytkownika w akcji będzie automatycznie połączona z tym kontem. Webhook będzie mógł odczytać zwykłe zamówienie użytkownika z w bazie danych i odpowiednio na nie zareagować.

Proces 2. Informacje o użytkowniku nie istnieją w Twoim systemie

Poniższy diagram przedstawia cały proces, który występuje w GSI, gdy nie ma w Twoim systemie informacji o użytkowniku:

W tym przypadku informacje zawarte w tokenie identyfikatora Google witryny user@gmail.com nie pasuje do konta w Twoim systemie, więc Asystent pyta użytkownika, czy chce utworzyć nowe konto. Użytkownik może ukończyć proces za pomocą głosu, zamiast przenoszenia na urządzeniu filtrowanym.

Gdy użytkownik wyrazi zgodę na utworzenie konta, usługa użyje tych informacji (imię i nazwisko oraz adres e-mail użytkownika), aby utworzyć konto użytkownika. Po utworzeniu konta tożsamość użytkownika w akcji jest połączone z jego nowym kontem Google.

W tym przypadku użytkownik nie ma zwykłego zamówienia, ponieważ jest nowy w tę usługę, więc akcja zapyta, co chce zamówić. Ty mogą zapytać użytkownika, czy chce ustawić ostatnią kolejność w zwykły sposób.