MVP 1 - Autenticacao - Tecnico¶
Topologia¶
Backend¶
Rotas REST:
POST /auth/registerPOST /auth/loginPOST /auth/logoutPOST /auth/password/forgotPOST /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_jtido 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¶
- drift de rota no forgot password entre backend e frontends
- web e app ainda nao mostram claramente estados avancados como sessao expirada ou refresh token
- sessao no web e simples e nao evidencia persistencia robusta no codigo mostrado