Hosted
O UserKit é dono da conta. Cadastro, login, verificação de e-mail e
recuperação de senha são endpoints que você chama. Os formulários são seus; as
regras são nossas.
Federado
Você já tem autenticação. Seu servidor atesta um usuário com um HMAC sobre
o id dele, e o UserKit confia na afirmação.
Qual dos dois
Se você está começando do zero, hosted. Se o seu produto já tem uma tabela de
usuários, federado — assim você não migra ninguém.
Definindo
organization:update. Os dois ambientes começam como hosted.
Lendo isso de uma tela de login
Uma tela de login precisa saber em que modo está antes de conseguir se renderizar, e receber isso como configuração significa que mudar o modo não faz nada até alguém fazer deploy. Pergunte:200
Origin, então funciona a partir de um servidor renderizando a página.
providers lista com o que um contato de fato conseguiria entrar, então ligar o
Google no painel acende o botão sozinho. Veja
Login social.
Os modos recusam um ao outro
Os endpoints do modo em que o ambiente não está respondem409 em vez de virarem
em silêncio um segundo caminho de login:
/v1/contact-auth/* em ambiente federado
/v1/boot com external_id, em ambiente hosted
Boot anônimo — uma chave publicável e um
anonymous_id, sem external_id —
funciona nos dois modos. Rastreamento de visitante e atribuição não são uma
questão de autenticação, então nunca batem na verificação de modo.O que os dois modos têm em comum
Qualquer que seja a escolha, as mesmas coisas valem. Contatos são contatos. As mesmas linhas, as mesmas arestas de identidade, a mesma atribuição, os mesmos merges. O modo decide como um contato é comprovado, não o que um contato é. Só um link comprova um e-mail. Nos dois modos,email_verified vira verdadeiro
quando uma mensagem que chegou na caixa de entrada é clicada — nunca porque um
e-mail foi passado para uma API.
Sessões carregam verified. Uma identidade comprovada emite uma
sessão de contato
verificada; uma não comprovada emite uma sessão marcada como não verificada e
barrada de qualquer coisa por onde os dados de outra pessoa pudessem vazar.
As respostas não enumeram. Cadastro, magic link, reenvio e esqueci-a-senha todos
respondem 202 incondicionalmente, e o login responde um 401 uniforme, nos dois
modos.
A lista de origens é o portão. Todo endpoint de chave publicável que
escreve alguma coisa — boot, cadastro, login, magic link, social — confere a
lista de origens permitidas
antes de qualquer outra coisa. As duas leituras públicas endereçadas por
chave, /v1/config e /v1/jwks, não conferem: elas não cunham nada e não mandam
e-mail para ninguém, e barrá-las só impediria um servidor de renderizar sua tela
de login — porque servidor nenhum manda Origin.
Seu backend verifica do mesmo jeito. Qualquer que seja o modo do ambiente, uma
sessão de contato compra um JWT de vida curta que a sua API confere offline. Veja
Tokens de sessão.