Repository navigation
feat(auth,users): implementa autenticação JWT via cookies HttpOnly e módulo de usuários - #3
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Contexto & Motivação
Este Pull Request implementa a fundação de autenticação e gestão de usuários da API do Cifra. O objetivo é fornecer uma camada segura de cadastro, autenticação e sessão de usuários, seguindo práticas recomendadas de segurança financeira e isolamento de dados.
Principais Mudanças
1. Módulo de Usuários (
UsersModule)POST /api/v1/users: criação direta de usuário com hash de senha (bcrypt) e sanitização de dados sensíveis na resposta.trimetoLowerCase) para evitar duplicidades por caixa alta ou espaços.P2002 -> ConflictException).class-validatoreclass-transformer(whitelisteforbidNonWhitelisted).2. Módulo de Autenticação (
AuthModule)POST /api/v1/auth/register: cadastro com inicialização automática de sessão.POST /api/v1/auth/login: autenticação por e-mail e senha com renovação de sessão.GET /api/v1/auth/me: consulta de dados do usuário autenticado no ciclo de vida atual.POST /api/v1/auth/logout: encerramento de sessão limpando o cookie com data de expiração no passado.HttpOnly,SameSite: strict,secureem produção) e fallback paraAuthorization: Bearer.3. Segurança & Observabilidade
@nestjs/throttler(ThrottlerGuard registrado globalmente)./api/docs./api/v1, CORS ecookie-parser.Cobertura de Testes
UsersService&UsersControllerAuthService&AuthControllerJwtStrategy(validação de payload e integridade de roles)auth.e2e-spec.ts: ciclo completo de register, login, me, logout e headers de cookie.users.e2e-spec.ts: criação direta, tratamento de duplicidade e validação de schema estrito.Como Testar Localmente
pnpm --filter api test pnpm --filter api run test:e2e