Skip to main content
O DEVMOB expõe os mesmos fluxos de autenticação em quatro superfícies (customer, ops, driver, bko).

Cadastro de passageiro (sign-up)

Cadastro autônomo de passageiro, disponível apenas no projeto customer. Ao concluir, o passageiro tem conta ativa, perfil de Customer com document e endereço, identidade de billing vinculada e já recebe um par de tokens.

Login por username + senha (sign-in)

Login tradicional. O username aceita email ou telefone. Disponível em todos os projetos.
Nos projetos ops, driver e bko, o login exige a permissão de acesso correspondente (access:ops, access:driver, access:bko), derivada dos vínculos ativos do usuário. O projeto customer não exige permissão de acesso.

Login social (Google OAuth)

Login via provedor social. O cliente obtém um token do provedor e o envia à API. Comportamento:
  • O usuário é localizado por googleProviderId; se não houver, tenta por email e, ao encontrar, vincula o googleProviderId e marca o email como verificado.
  • Se nenhum usuário existir, a requisição é rejeitada com 401o login social não cria contas automaticamente.
  • No projeto customer, o login social garante que exista um Customer para o usuário. Nos projetos de staff, valida a permissão de acesso (access:{api}).

Ativação de conta por Invite

Usuários criados sem senha, com status = PENDING, recebem um Invite type=ACCOUNT_ACTIVATION. Para acessar o sistema de forma autônoma, aceitam o token e definem uma senha. Regras:
  • O Invite de ativação expira em 7 dias; após o vencimento, um novo token deve ser gerado.
  • A ativação define a senha, marca a conta como ACTIVE e marca o email como verificado (quando há email).
  • Um token já utilizado não pode ativar a conta novamente.
A ativação ocorre em um único passo e usa o mesmo lifecycle de Invite: pendente, aceito, rejeitado, revogado ou expirado.

Conta criada em venda POS

Quando uma venda presencial precisa criar uma conta para o passageiro, o sistema resolve ou cria User e Customer antes do pedido. O documento do Customer é obrigatório nesse fluxo. Se o User nascer sem senha, o sistema cria um Invite type=ACCOUNT_ACTIVATION. O passageiro usa esse convite depois para definir senha e acessar o app.

Recuperação de senha

A recuperação de senha usa OTP: o cliente solicita um código, recebe um otpId, e o fluxo de reset valida otpId + code antes de definir a nova senha.