diff --git a/docs/PLANO_BACKEND_AUTENTICACAO_ACESSO.md b/docs/PLANO_BACKEND_AUTENTICACAO_ACESSO.md index 0c97538..7138d35 100644 --- a/docs/PLANO_BACKEND_AUTENTICACAO_ACESSO.md +++ b/docs/PLANO_BACKEND_AUTENTICACAO_ACESSO.md @@ -161,3 +161,19 @@ Este documento detalha, em ordem de prioridade, o que deve ser implementado no * - **Manter payloads** de login/refresh para o front atual. - **Adicionar campos** novos sem remover antigos. +--- + +## 9) Recomendação — Próximo item prioritário (checklist detalhado) + +Baseado no plano de autenticação do backend, o próximo passo é solidificar o **core de autenticação** e preparar a base de **RBAC**. + +### Backend: core de autenticação +- [ ] Criar/validar schema de `users` e `refresh_tokens` (incluindo UUIDs e hash do token). +- [ ] Implementar/validar `POST /auth/login` com retorno de `accessToken` + `refreshToken`. +- [ ] Implementar/validar `POST /auth/refresh` com rotação de refresh token. +- [ ] Implementar/validar `GET /auth/me` protegido por bearer token. +- [ ] Aplicar regras mínimas de segurança (bcrypt, TTLs, bloqueio de usuário). + +### Backend: base de autorização (RBAC) +- [ ] Criar schema de `roles`, `permissions`, `user_roles`, `role_permissions`. +- [ ] Implementar guards de JWT, Roles e Permissions nos controllers-chave. diff --git a/saveinmed-frontend/MELHORIAS_AUTENTICACAO_AUTH_APPWRITE.md b/saveinmed-frontend/MELHORIAS_AUTENTICACAO_AUTH_APPWRITE.md index 53ee704..c7ec08d 100644 --- a/saveinmed-frontend/MELHORIAS_AUTENTICACAO_AUTH_APPWRITE.md +++ b/saveinmed-frontend/MELHORIAS_AUTENTICACAO_AUTH_APPWRITE.md @@ -15,6 +15,46 @@ Este documento descreve as melhorias implementadas na autenticação para usar corretamente o ID do Auth do Appwrite. +## 🆕 Atualizações recentes (Gestão de usuários + AuthContext) + +### 1) Geração de `auth-id-appwrite` com UUIDv7 +- **Onde**: API de gestão de usuários (`/api/gestao-usuarios`). +- **O que mudou**: + - O `auth-id-appwrite` agora é gerado via `uuidv7()` com prefixo `user_`. + - Isso garante IDs **ordenáveis** e **mais únicos** no fluxo de criação de usuários. + - O documento salvo em Appwrite passa a persistir exatamente o valor gerado. +- **Por quê**: + - UUIDv7 oferece ordenação temporal e melhor distribuição que UUIDv4. + - Facilita auditoria e análise (IDs naturalmente ordenáveis). + +### 2) População de `userRole` a partir do usuário persistido +- **Onde**: `AuthContext`. +- **O que mudou**: + - Durante a verificação de autenticação, o usuário persistido em `localStorage` é parseado e armazenado no estado `user`. + - O `userRole` passa a ser derivado diretamente de `user.nivel`. + - Isso mantém o papel do usuário sincronizado com o que foi persistido no login. + +### 3) Dependência `uuid` no frontend +- **Onde**: `package.json`. +- **O que mudou**: + - Inclusão de `uuid` para suportar `uuidv7()` na geração de `auth-id-appwrite`. + +--- + +## ✅ Checklist detalhado (alterações recentes) + +### UUIDv7 no fluxo de criação de usuário +- [x] Adicionar import do gerador `uuidv7` no handler de criação de usuários. +- [x] Substituir a geração manual de `authId` por `uuidv7()` com prefixo `user_`. +- [x] Garantir que o documento salvo usa o `auth-id-appwrite` gerado por UUIDv7. + +### Evolução de autenticação no frontend +- [x] Fazer parse do usuário persistido e armazenar em estado `user`. +- [x] Derivar `userRole` a partir de `user.nivel` no mesmo fluxo de autenticação. + +### Dependências +- [x] Adicionar `uuid` nas dependências do frontend para uso de UUIDv7. + ## 🔧 Alterações Implementadas ### 1. **Uso Correto do ID do Auth**