Detalhes completos em Credenciais.
Sessões de staff
Consiga uma no cadastro, no login, ou na troca de dois fatores:two_factor_required, depois troque o desafio em
/v1/auth/two-factor dentro de 5 minutos. Veja
Dois fatores.
Depois envie em toda requisição:
Chaves de API
Só no servidor. Criadas no painel, mostradas uma vez./v1/me uma vez no start-up para confirmar qual você está segurando.
Chaves publicáveis
Não é header. Vai no corpo dos endpoints que a aceitam:Origin ausente é recusado.
Sessões de contato
Emitidas pelo boot, por um magic link resgatado, por login hosted, ou por verificação de e-mail. Leem aquele contato e mais nada.verified na sessão diz se a identidade por trás dela foi comprovada. Uma
sessão não verificada é usável e fica marcada, mas é barrada de qualquer coisa por
onde os dados de outra pessoa pudessem vazar.
Falhas
Credencial ausente, malformada, expirada ou revogada — e também “você não é membro
daquela organização”, porque o JOIN do vínculo não casa com nada e distinguir os
dois casos vazaria que a organização existe.
Autenticado, mas o seu papel não carrega a permissão. Diferente do
401: logar de
novo não vai ajudar.Também a resposta para um recurso em outra organização ou outro ambiente. O 404
nunca revela qual.
Levando a família errada
Uma credencial bem formada de outra família recebe isso, em vez de um “inválido” seco:401
Não revelar se uma conta existe
Vários endpoints respondem igual havendo ou não conta para aquele endereço. Isso é deliberado e vale preservar se você mexer nesses caminhos:
Sem a equalização de tempo, só contas reais pagariam as dezenas de milissegundos do
bcrypt, e a latência sozinha responderia a pergunta que o código de status se recusa
a responder.