Google One-tap sign-up
O Google possui uma excelente opção para autenticar os usuários de uma maneira muito rápida em nossos sites e aplicações, ela já era uma opção que estava em testes para alguns parceiros, que o Google tornou disponível para todos recentemente.
Como seu principal benefício está o de autenticar o usuário para em nossas aplicações com um email válido, e principalmente, sem perder o contexto da pessoa em nosso site, sem redirecionamento ou nada que atrapalhe a experiência dela.
Começando
Para começar será necessário termos um projeto no https://console.developers.google.com/ .Para este exemplo vou criar um novo (caso sua empresa já possua um projeto não será necessário criar um novo):
Tento nosso projeto criado, precisaremos configurar nossa tela de consentimento OAuth que vamos utilizar, isto pode ser feito a partir do menu na lateral esquerda de nosso projeto:
Nela vamos selecionar a opção externo (pois vamos liberar o acesso para qualquer usuário com uma conta do gmail)
Neste exemplo vou configurar as urls em um domínio de teste
Com nossa tela de OAuth criada, vamos nas opções de Credenciais e criaremos uma chave para utilizarmos em nosso login
Podemos escolher a opção criar credenciais, vamos escolher a opção ID do Cliente do OAuth:
Na tela de configuração do meu cliente escolhi um Aplicativo da Web e nele vou configurar as urls que utilizarei em meu site (notem que configurei as origens de JavaScript autorizadas)
Com nossa chave de API criada precisaremos salvar os valores de ID de cliente que vamos utilizar para fazer a requisição para o Google.
Programando
Agora que temos o id do client de nossa API, podemos criar um html (isto pode variar de acordo com a tecnologia que você esteja utilizando, mas a princípio pode ser um html simples).
Neste html precisaremos adicionar a biblioteca js do Google para fazer a autenticação e também uma biblioteca para ler o resultado, para isso vou utilizar este projeto que está disponível no GitHub https://github.com/auth0/jwt-decode
Para facilitar adicionei ele em nosso exemplo via CDN:
Com isto precisaremos adicionar também um elemento html contento as informações de nossa aplicação:
E o método que será responsável por manipular a resposta da autenticação:
Notem que como exemplo coloquei um console.log, mas é neste lugar que sua aplicação pode preencher algum formulário ou mesmo autenticar o usuário com aquele email.
Feito isto temos nossa aplicação funcionando \o/
E ao clicar em meu perfil, minhas informações estão disponíveis para serem tratadas pela minha aplicação
Um detalhe, caso o usuário opte por fechar o diálogo do Google, ele criará um cookie responsável por não mostrar mais o diálogo do Google para o usuário, removendo ele, o Google volta a mostrar a interface
Aqui está o html inteiro, lembrem-se de trocar o data-client-id pelo de sua aplicação no Google
Com este simples projeto é possível aumentar a conversão de login e de emails válidos em nossas aplicações.
Espero que este post seja útil, estou à disposição para dúvidas, críticas e sugestões.
abs
Rodolfo