Guia do conceito de Login do Google (Dialogflow)

O Login do Google (GSI) para o Google Assistente possibilita a vinculação mais integrada experiência dos 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, endereço de e-mail e foto do perfil. Sua Ação pode usar essas informações para verificar se o o usuário tem uma Conta do Google no seu sistema. Caso contrário, a ação perguntará ao usuário se ele quer criar uma nova conta no seu sistema com base informações de perfil.

A GSI é a solução recomendada de vinculação de contas se alguma das seguintes condições se aplicar:

  • Você não tem um sistema de autenticação e/ou espera que todas as que os usuários tenham uma Conta do Google. Por exemplo, se a ação for especificamente você espera que todos os usuários tenham acesso ao Google Assistente contas de serviço.
  • Você já tem um sistema de autenticação e quer vincular apenas usuários que fez login no seu sistema usando as Contas do Google dele.

Para verificar se a GSI é a solução certa para você, consulte o página Escolha o tipo de vinculação da conta.

Termos-chave

Antes de ler sobre como a GSI funciona, 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 do perfil do Google de um usuário (nome, endereço de e-mail e foto do perfil). Um token de ID do Google é um JSON Web Token (JWT).

    Este é 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"
}
  • Intent de ajuda de login da conta:uma intent auxiliar que você chama solicitar um fluxo de vinculação de contas no Google Assistente. Para mais informações, consulte Login da conta.
    • String de contexto:uma string personalizada que você adiciona à conta intent de ajuda de login que informa ao usuário por que você precisa que ele faça a vinculação a conta.

Como funciona

O fluxo fundamental da GSI é o seguinte:

  1. Sua Ação pede ao usuário consentimento para acessar o perfil do Google dele.
  2. Depois que o usuário dá o consentimento, sua ação recebe um token de ID do Google que contém as informações do perfil do Google do usuário.
  3. Valide e decodifique o token para ler o conteúdo do perfil. Se você usar o método biblioteca de cliente do Actions on Google para Node.js ou Java ele valida e decodifica o token para você.
  4. Seu Action usa esse token para verificar se o perfil do Google do usuário informações existem no sistema.

    1. Em caso afirmativo, isso significa que o usuário já fez login no sistema com a Conta do Google. O usuário pode continuar a conversa com o ao Google Assistente, com a identidade vinculada à Conta do Google.
    2. Se não tiver, o usuário pode criar uma nova conta em seu sistema com as informações contidas no token de ID do Google. O usuário pode então continuar a conversa com o Assistente com a nova conta vinculada.

Fluxos de Login do Google

Esta seção descreve 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 os informações do usuário já existem no seu sistema:

Nesse caso, você chama a intent auxiliar actions.intent.SIGN_IN com uma string de contexto personalizada por você. Essa intent pede permissão ao usuário para acessar as informações do perfil do Google.

Após o consentimento do usuário, o Assistente envia uma solicitação com as seguintes informações: informações de perfil de user@gmail.com. Nesse caso, as informações no token de ID do Google para user@gmail.com corresponde a uma conta em seu sistema, para que a identidade do usuário na sua ação seja vinculada automaticamente para essa conta. Seu webhook pode ler o pedido normal do usuário em um banco de dados e responder de acordo.

Fluxo 2: as informações do usuário não existem no seu sistema

O diagrama a seguir mostra o fluxo completo que ocorre com a GSI ao as informações do usuário não existem no seu sistema:

Nesse caso, as informações contidas no token de ID do Google do user@gmail.com não corresponde a uma conta no seu sistema. Por isso, o Google Assistente perguntará ao usuário se ele gostaria de criar uma nova conta. O usuário pode concluir o processo de criação de conta por 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 (o nome do usuário e o endereço de e-mail) para criar uma conta para o usuário. Depois que a conta é criada, a identidade do usuário na sua ação está vinculado à nova Conta do Google.

Nesse caso, o usuário não tem um pedido normal porque é novo no o serviço, então a ação pergunta o que eles querem pedir. Você também pode perguntar ao usuário se ele gostaria de definir o pedido mais recente como de costume.