Merge pull request #74 from rede5/codex/verify-authentication-updates-in-documentation

Docs: document UUIDv7 auth-id-appwrite generation and add backend auth/RBAC checklist
This commit is contained in:
Tiago Yamamoto 2026-02-07 09:17:26 -03:00 committed by GitHub
commit 49cfbaae16
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 56 additions and 0 deletions

View file

@ -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. - **Manter payloads** de login/refresh para o front atual.
- **Adicionar campos** novos sem remover antigos. - **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.

View file

@ -15,6 +15,46 @@
Este documento descreve as melhorias implementadas na autenticação para usar corretamente o ID do Auth do Appwrite. 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 ## 🔧 Alterações Implementadas
### 1. **Uso Correto do ID do Auth** ### 1. **Uso Correto do ID do Auth**