O Login do Google (GSI) para o Google Assistente oferece a experiência de vinculação mais fácil para os usuários e é o fluxo mais fácil para os desenvolvedores implementarem. Com a GSI, sua ação pode solicitar acesso ao perfil do Google do usuário durante uma conversa e, se o usuário consentir, receber o nome, o endereço de e-mail e a foto do perfil. Sua ação poderá usar essas informações para verificar se o usuário tem uma Conta do Google no seu sistema. Caso contrário, a ação pergunta ao usuário se ele quer criar uma nova conta no sistema com base nas informações do perfil do Google.
A GSI é a solução recomendada para a vinculação de contas nas seguintes situações:
- Você não tem um sistema de autenticação e/ou espera que todos os seus usuários tenham uma Conta do Google. Por exemplo, se a ação segmentar especificamente o Google Assistente, o esperado é que todos os seus usuários tenham Contas do Google.
- Você já tem um sistema de autenticação e quer vincular apenas usuários que fizerem login no sistema usando as Contas do Google deles.
Para verificar se a GSI é a solução certa para você, consulte a página Escolha o tipo de vinculação de conta.
Termos-chave
Antes de ler sobre o funcionamento da GSI, familiarize-se com os seguintes termos:
Token de ID do Google: uma declaração assinada da identidade de um usuário que contém informações básicas de perfil do Google (nome, endereço de e-mail e foto do perfil). Um token de ID do Google é um JSON Web Token (JWT).
Veja a seguir um exemplo de token decodificado:
{ "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
:uma propriedade definida pelo sistema para indicar se a sessão atual tem um usuário verificado.user.accountLinkingStatus
:uma propriedade definida pelo sistema para indicar se o usuário na sessão atual tem uma identidade vinculada.Cenário do sistema de vinculação de contas:é uma cena predefinida que implementa o fluxo de confirmação para vinculação da conta e pode ser personalizada para atender a casos de uso específicos.
Como funciona
O fluxo fundamental da GSI é o seguinte:
- Seu Action solicita consentimento ao usuário para acessar o perfil do Google.
- Depois que o usuário dá o consentimento, sua ação recebe um token de ID do Google com as informações do perfil do Google.
- Valide e decodifique o token para ler o conteúdo do perfil. Se você usar a biblioteca de fulfillment do Actions on Google para Node.js, ela vai validar e decodificar o token para você.
Seu Action usa esse token para verificar se as informações de perfil do Google do usuário existem no sistema.
- Em caso afirmativo, o usuário já fez login no sistema com a Conta do Google. O usuário pode continuar a conversa com o Google Assistente usando a identidade vinculada à Conta do Google.
Caso contrário, o usuário pode criar uma nova conta no sistema com as informações contidas no token de ID do Google. O usuário pode continuar a conversa com o Google Assistente com a nova conta vinculada.
Fluxos de Login do Google
Nesta seção, descrevemos os vários fluxos que podem ocorrer com o Login do Google.
Fluxo 1: as informações do usuário existem no seu sistema.
O diagrama a seguir mostra o fluxo completo que ocorre com a GSI quando as informações do usuário já existem no sistema:
Nesse caso, você faz a transição para o cenário do sistema de vinculação de contas e fornece uma justificativa personalizada. Essa cena pede permissão ao usuário para acessar as informações do perfil do Google.
Depois que o usuário consente, o Google Assistente envia uma solicitação com as
informações de perfil para user@gmail.com
. Nesse caso, as informações
contidas no token de ID do Google para user@gmail.com
correspondem a uma conta no
seu sistema. Portanto, a identidade do usuário na sua ação é automaticamente vinculada
a essa conta. Seu webhook pode ler a ordem usual do usuário de
um banco de dados e responder de acordo.
Fluxo 2: não há informações do usuário no seu sistema.
O diagrama a seguir mostra o fluxo completo que ocorre com a GSI quando as informações do usuário não existem no sistema:
Nesse caso, as informações no token de ID do Google para
user@gmail.com
não correspondem a uma conta no seu sistema. Por isso, o Google Assistente
pergunta ao usuário se ele quer criar uma nova conta. O usuário pode concluir
o processo de criação da conta com voz em vez de transferir para
um dispositivo filtrado.
Quando o usuário concorda em criar uma conta, seu serviço usa as informações no token de ID (nome e endereço de e-mail do usuário) para criar uma conta. Depois que a conta é criada, a identidade do usuário na sua ação é vinculada à nova Conta do Google.
Nesse caso, o usuário não tem uma ordem comum porque é novo no serviço. Por isso, a ação pergunta o que ele quer pedir. Você também pode perguntar ao usuário se ele quer definir a ordem mais recente como a normal.