Przewodnik po logowaniu przez Google

Logowanie przez Google (GSI) w Asystencie zapewnia użytkownikom najprostszy proces łączenia i jest najłatwiejszy do wdrożenia przez deweloperów. Dzięki GSI akcja może poprosić o dostęp do profilu Google użytkownika podczas rozmowy. Jeśli użytkownik wyrazi zgodę, może otrzymać jego nazwę, adres e-mail i zdjęcie profilowe. Akcja może wykorzystać te informacje, aby sprawdzić, czy użytkownik ma konto Google w Twoim systemie. Jeśli nie, akcja pyta użytkownika, czy chce utworzyć nowe konto w Twoim systemie na podstawie informacji z profilu Google.

GSI to zalecane rozwiązanie do łączenia kont w tych przypadkach:

  • Nie masz systemu uwierzytelniania lub oczekujesz, że wszyscy użytkownicy mają konto Google. Jeśli na przykład akcja jest kierowana do Asystenta, możesz oczekiwać, że wszyscy użytkownicy będą mieli konta Google.
  • Masz już system uwierzytelniania i chcesz połączyć tylko tych użytkowników, którzy logowali się w Twoim systemie za pomocą swoich kont Google.

Aby sprawdzić, czy GSI to rozwiązanie odpowiednie dla Ciebie, zajrzyj na stronę Wybierz typ połączenia konta.

Kluczowe terminy

Zanim zapoznasz się z działaniem GSI, zapoznaj się z następującymi terminami:

  • Token tożsamości Google: podpisane potwierdzenie tożsamości użytkownika, które zawiera podstawowe informacje z jego profilu Google (imię i nazwisko, adres e-mail i zdjęcie profilowe). Token identyfikatora Google to token sieciowy 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: usługa ustawiona przez system, która wskazuje, czy w bieżącej sesji ma zweryfikowanego użytkownika.

  • user.accountLinkingStatus: właściwość ustawiona przez system, która wskazuje, czy użytkownik w bieżącej sesji ma połączoną tożsamość.

  • Scena systemu łączenia kont: wstępnie zdefiniowana scena, która implementuje proces potwierdzania podczas łączenia kont i można ją dostosować do konkretnych przypadków użycia.

Jak to działa

Proces GSI przebiega w następujący sposób:

  1. Akcja prosi użytkownika o zgodę na dostęp do jego profilu Google.
  2. Gdy użytkownik wyrazi zgodę, akcja otrzyma token identyfikatora Google, który zawiera informacje z profilu Google użytkownika.
  3. Zweryfikuj i zdekoduj token, aby odczytywać zawartość profilu. Jeśli używasz biblioteki realizacji w Actions on Google dla Node.js, weryfikuje i dekoduje token za Ciebie.
  4. Akcja używa tego tokena do sprawdzania, czy informacje o profilu Google użytkownika istnieją w Twoim systemie.

    1. Jeśli tak, oznacza to, że użytkownik zalogował się już w Twoim systemie przy użyciu swojego konta Google. Użytkownik może kontynuować rozmowę z Asystentem, używając tożsamości powiązanej z kontem Google.
    2. Jeśli nie, użytkownik może utworzyć w Twoim systemie nowe konto przy użyciu informacji zawartych w tokenie identyfikatora Google. Użytkownik może kontynuować rozmowę z Asystentem, mając połączone nowe konto.

Procesy logowania w Google

W tej sekcji opisano różne procesy, które można wykonać w ramach Logowania przez Google.

Proces 1. W systemie istnieją informacje o użytkowniku

Na diagramie poniżej widać cały proces w GSI, gdy informacje o użytkowniku już znajdują się w Twoim systemie:

W takim przypadku przechodzisz do sceny systemu łączenia kont i podajesz niestandardowe uzasadnienie. W tej sceny użytkownik jest proszony o zezwolenie na dostęp do informacji z jego profilu Google.

Gdy użytkownik wyrazi zgodę, Asystent wyśle żądanie zawierające informacje z profilu użytkownika user@gmail.com. W tym przypadku informacje zawarte w tokenie identyfikatora Google identyfikatora user@gmail.com są zgodne z kontem w Twoim systemie, więc tożsamość użytkownika w akcji jest automatycznie połączona z tym kontem. Webhook może wtedy odczytać zwykłe zamówienia użytkownika z bazy danych i odpowiednio zareagować.

Proces 2. W systemie nie ma danych użytkownika

Na diagramie poniżej widać cały proces w GSI, gdy dane użytkownika nie istnieją w Twoim systemie:

W tym przypadku informacje zawarte w tokenie identyfikatora Google na stronie user@gmail.com nie zgadzają się z danymi konta w Twoim systemie, więc Asystent pyta użytkownika, czy nie chce utworzyć nowego konta. Użytkownik może ukończyć proces tworzenia konta za pomocą głosu, zamiast przenosić dane na urządzenie.

Gdy użytkownik wyrazi zgodę na utworzenie konta, usługa wykorzystuje informacje z tokena tożsamości (nazwę i adres e-mail użytkownika) do utworzenia konta dla tego użytkownika. Po utworzeniu konta tożsamość użytkownika w akcji zostanie połączona z jego nowym kontem Google.

W tym przypadku użytkownik nie ma zwykłego zamówienia, ponieważ jest nowy w usłudze, więc akcja pyta, co chce zamówić. Możesz też zapytać użytkownika, czy nie chce, aby ostatnie zamówienie było ustawiane w takiej kolejności, w jakiej jest.