3.3 KiB
3.3 KiB
Nota de atualização
Este documento contém referências históricas a BFF, Appwrite ou papéis legados. No fluxo ativo do frontend, a referência correta é API direta e os papéis válidos são
admin,owner,employeeedelivery.
Melhorias na Autenticação - Auth do Appwrite
📋 Resumo das Alterações
Este documento descreve as melhorias implementadas na autenticação para usar corretamente o ID do Auth do Appwrite.
🔧 Alterações Implementadas
1. Uso Correto do ID do Auth
- ✅ Página de Login: Já estava usando
account.get()para obter o usuário autenticado - ✅ Hook useAuth: Já estava usando
authUser.$idcorretamente - ✅ Consistência: Ambos os locais usam o mesmo ID do Auth do Appwrite
2. Simplificação da Lógica de Login
- ⌠Removido: Criação automática de documento na collection
usuarios - ✅ Mantido: Redirecionamento para
/completar-registroquando usuário não existe na collection - ✅ Melhorado: Logs mais claros indicando uso do "ID do Auth"
3. Fluxo de Autenticação Otimizado
// Fluxo atual:
1. Login com email/senha → account.createEmailPasswordSession()
2. Obter usuário autenticado → account.get()
3. Usar currentUser.$id como ID do documento
4. Buscar na collection usuarios usando esse ID
5. Se encontrado → Dashboard
6. Se não encontrado → Completar Registro
🎯 BenefÃcios das Melhorias
Consistência de IDs
- O ID do documento na collection
usuariosé sempre igual ao ID do Auth - Elimina problemas de sincronização entre Auth e Database
Simplicidade
- Removida lógica complexa de criação automática de documentos
- Fluxo mais limpo e previsÃvel
Segurança
- Usa apenas IDs gerados pelo Appwrite Auth
- Evita conflitos de IDs personalizados
📠Configuração Necessária
Permissões da Collection usuarios
Certifique-se de que as permissões estão configuradas corretamente:
Role: users
Permissions: read, create, update
Estrutura do Documento
O documento na collection usuarios deve ter o mesmo $id do usuário no Auth:
{
"$id": "auth_user_id_here",
"nome-civil": "Nome do Usuário",
"email": "email@exemplo.com",
"nivel": "cliente",
"ativo": true,
// outros campos...
}
🔠Como Verificar se Está Funcionando
- Login bem-sucedido: Usuário é redirecionado para
/dashboard - Primeiro acesso: Usuário é redirecionado para
/completar-registro - Logs no console: Mostram "Auth User ID" sendo usado
- Sem erros 401: Não há mais erros de autorização
📚 Arquivos Modificados
src/app/login/page.tsx- Simplificação da lógica de loginPERMISSOES_COLLECTION_USUARIOS.md- Documentação de permissões
✅ Status
- Verificação do uso do ID do Auth
- Simplificação da lógica de login
- Remoção de criação automática de documentos
- Teste da aplicação
- Documentação das melhorias
Resultado: A autenticação agora usa corretamente o ID do Auth do Appwrite de forma consistente e simplificada.