Autenticação e Autorização
O RadarBov usa autenticação baseada em JWT (JSON Web Tokens) para identificar usuários em todas as plataformas — portal web e app mobile.
Login
O usuário faz login com e-mail e senha. Em caso de sucesso, a API REST retorna:
access_token— JWT de curta duração (usado nas requisições)refresh_token— token de longa duração para renovar o access token sem novo login
Endpoints
POST /login— autentica e retorna tokensPOST /refresh— renova o access tokenGET /whoami— retorna dados do usuário autenticadoPATCH /self-update— atualiza dados do próprio usuário
Múltiplos perfis
Um usuário pode ter múltiplos perfis — por exemplo, ser operador em uma fazenda e administrador em outra. Após o login, o sistema apresenta a lista de perfis disponíveis e o usuário seleciona com qual deseja trabalhar na sessão.
O secret_key do backend assina os tokens JWT. Os tokens armazenam o perfil ativo do usuário.
Cadastro de novo usuário (app mobile)
O app mobile permite auto-cadastro sem necessidade de um administrador. O fluxo é:
- Dados pessoais (nome, CPF/CNPJ, telefone, e-mail)
- Questionário de perfil (tipo de uso)
- Verificação por código PIN enviado por e-mail (SendGrid) ou SMS (Twilio)
- Conta ativa
Recuperação de senha
O usuário solicita recuperação de senha pelo e-mail cadastrado. Um link é enviado via SendGrid para redefinição.
Armazenamento seguro de tokens (mobile)
No app mobile, os tokens JWT são armazenados com flutter_secure_storage — que usa o Keychain (iOS) ou Keystore (Android), não armazenamento em texto simples.
Autorização
A autorização do que cada usuário pode fazer é controlada pelo sistema de acesso hierárquico baseado em caminhos ltree. Ver Sistema de Acesso para detalhes.