Pular para conteúdo

MVP 1 - Autenticacao - Tecnico

Topologia

Backend

Rotas REST:

  • POST /auth/register
  • POST /auth/login
  • POST /auth/logout
  • POST /auth/password/forgot
  • POST /auth/password/reset

Arquivo de registro:

  • /tmp/auraxis-platform-mvp1docs-p5AMyw/repos/auraxis-api/app/controllers/auth/routes.py

Web

Paginas:

  • /login
  • /register
  • /forgot-password

Arquivos:

  • /tmp/auraxis-platform-mvp1docs-p5AMyw/repos/auraxis-web/app/pages/login.vue
  • /tmp/auraxis-platform-mvp1docs-p5AMyw/repos/auraxis-web/app/pages/register.vue
  • /tmp/auraxis-platform-mvp1docs-p5AMyw/repos/auraxis-web/app/pages/forgot-password.vue

App

Telas:

  • /(public)/login
  • /(public)/forgot-password

Arquivos:

  • /tmp/auraxis-platform-mvp1docs-p5AMyw/repos/auraxis-app/app/(public)/login.tsx
  • /tmp/auraxis-platform-mvp1docs-p5AMyw/repos/auraxis-app/app/(public)/forgot-password.tsx

Backend: fluxo real

Login

Arquivo central:

  • /tmp/auraxis-platform-mvp1docs-p5AMyw/repos/auraxis-api/app/controllers/auth/login_resource.py

Comportamento:

  • valida identificador por email ou nome
  • monta contexto de tentativa de login
  • consulta guard de limite de tentativas
  • verifica senha
  • emite JWT
  • persiste current_jti do usuario

Implicacao:

  • o backend trabalha com uma nocao de token atual valido por usuario
  • isso ajuda a invalidar sessoes antigas ou divergentes

Cadastro

Arquivo central:

  • /tmp/auraxis-platform-mvp1docs-p5AMyw/repos/auraxis-api/app/controllers/auth/register_resource.py

Comportamento:

  • checa email duplicado
  • pode ocultar conflito, conforme politica de seguranca
  • grava senha com hash
  • opcionalmente persiste investor_profile

Recuperacao de senha

Arquivo central:

  • /tmp/auraxis-platform-mvp1docs-p5AMyw/repos/auraxis-api/app/controllers/auth/forgot_password_resource.py

Comportamento:

  • resposta neutra
  • reaproveita guard de anti-abuso
  • nao confirma existencia da conta

Backend: validacao

Schemas:

  • /tmp/auraxis-platform-mvp1docs-p5AMyw/repos/auraxis-api/app/schemas/auth_schema.py

Regras relevantes:

  • login exige senha e ao menos email ou nome
  • email e normalizado para lowercase
  • reset de senha exige token e senha forte

Frontend web

Sessao

  • store simples em Pinia:
  • /tmp/auraxis-platform-mvp1docs-p5AMyw/repos/auraxis-web/app/stores/session.ts

Adapter HTTP

  • /tmp/auraxis-platform-mvp1docs-p5AMyw/repos/auraxis-web/app/composables/useAuth/api.ts

Observacao tecnica importante

No codigo atual, web chama:

  • POST /auth/forgot-password

Mas a API exposta no backend esta registrada como:

  • POST /auth/password/forgot

Isso e um drift tecnico que precisa ser resolvido.

App mobile

Sessao

  • Zustand:
  • /tmp/auraxis-platform-mvp1docs-p5AMyw/repos/auraxis-app/stores/session-store.ts

Persistencia

  • secure storage via helper de sessao
  • bootstrap no carregamento do app:
  • /tmp/auraxis-platform-mvp1docs-p5AMyw/repos/auraxis-app/hooks/use-session-bootstrap.ts

Mutations

  • /tmp/auraxis-platform-mvp1docs-p5AMyw/repos/auraxis-app/hooks/mutations/use-auth-mutations.ts

Riscos tecnicos atuais

  1. drift de rota no forgot password entre backend e frontends
  2. web e app ainda nao mostram claramente estados avancados como sessao expirada ou refresh token
  3. sessao no web e simples e nao evidencia persistencia robusta no codigo mostrado