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 tokens
  • POST /refresh — renova o access token
  • GET /whoami — retorna dados do usuário autenticado
  • PATCH /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 é:

  1. Dados pessoais (nome, CPF/CNPJ, telefone, e-mail)
  2. Questionário de perfil (tipo de uso)
  3. Verificação por código PIN enviado por e-mail (SendGrid) ou SMS (Twilio)
  4. 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.


Ver também