state volta para você, e
apresentá-lo no callback é o que prova que as duas metades são o mesmo fluxo.
Google hoje. Adicionar um provedor é uma linha e uma implementação do nosso lado
— nunca uma migração, e nunca uma mudança nas duas chamadas abaixo.
A aplicação OAuth é sua
Você registra a aplicação no console do Google e guarda as credenciais conosco. A tela de consentimento que seu cliente lê passa a dizer o nome do seu produto, não o nosso — um provedor de identidade cuja marca aparece na tela de login dos outros está vendendo a coisa errada.Um ambiente de teste sem nada configurado pode cair numa aplicação
compartilhada do UserKit, para o login social funcionar nos seus primeiros dez
minutos. O ambiente live nunca cai: aquela tela de consentimento tem que ser sua.
GET /v1/config/{chave} responde com os provedores com os quais este ambiente de
fato consegue autenticar alguém, então o botão aparece quando você registra a
aplicação — e não no seu próximo deploy. Veja
Modos de autenticação.
Start
200
authorization_url e guarde o state onde a página de
callback consiga ler — session storage é a resposta de sempre. O fluxo vale
quinze minutos.
PKCE é aplicado em todo fluxo, e o verifier nunca sai do nosso processo: o código
de autorização passa por uma página que não controlamos, então um código roubado
sozinho não compra nada.
Passar anonymous_id funde o visitante que essa pessoa já era na conta,
atribuição incluída.
Rate limit de 30 por hora por IP.
Callback
Sua página de redirecionamento recebe?code=… e o envia de volta com o state
que guardou:
200
401 invalid_grant. Um provedor que não conseguimos alcançar responde
502 provider_unavailable — essa não é culpa de quem chamou.
Rate limit de 30 por hora por IP.
Como a conta é resolvida
Esta é a parte que vale ler duas vezes. Em ordem:1
Um contato já vinculado a esta conta do provedor
Resolvido pelo subject id estável do provedor, nunca pelo e-mail. Quem trocou
o endereço do Google continua sendo a mesma pessoa.
2
O provedor atestou o endereço
Vincula ao contato dono daquele endereço, ou cria um. Duas partes já
provaram o mesmo endereço, e é isso que torna a vinculação admissível.
3
O provedor não atestou
A conta do provedor é a única identidade que o login carrega. O e-mail entra
como atributo e não resolve para nada — um contato novo, mesmo que o endereço
pareça conhecido.