Este módulo de autenticação foi implementado inicialmente em Client-Side (CSR) usando React/Next,
com foco total em componentização (Atomic Design) e clara separação entre UI e domínio.
O fluxo utiliza cookies HttpOnly no processo de login.
O login não armazena o token em localStorage/sessionStorage.
A API NestJS devolve um JWT dentro de um cookie HttpOnly, Secure e com SameSite definido.
Isso traz benefícios importantes:
- evita ataques XSS (cookie não acessível via JS)
- melhora compatibilidade com SSR/Server Actions futuramente
- simplifica regras de segurança e persistência
- permite renovação de sessão e refresh transparente
No fluxo atual:
- O usuário envia email + senha (CSR).
- O Organism de Login envia o POST para a API.
- A API responde setando um cookie HttpOnly contendo o JWT.
- O front não precisa armazenar nada manualmente.
- Requests autenticadas já incluem automaticamente o cookie.
O front apenas gerencia estado de UI, sem risco de exposição do token.
A decisão de iniciar com um fluxo Client-Side permanece, mas agora com segurança reforçada:
- demostra domínio de estado local e formulários controlados
- construção de UI Atomic Design (Atoms → Molecules → Organisms)
- fluxo claro entre login, recuperação, reset etc.
- implementação didática, rápida e compatível com qualquer stack REST
- arquitetura flexível para futura migração para SSR / Server Actions
Com a adoção de cookies HttpOnly, a arquitetura está alinhada com um fluxo muito mais robusto:
Pode evoluir facilmente para:
- Server Actions (Next.js 13+)
- SSR com autenticação automática via cookies
- rotas protegidas no server-side
- refresh tokens
- logout seguro invalidando cookie
E sem reescrever UI, pois a separação está clara:
- Domínio / regras → Organisms
- UI e estado controlado → Molecules / Atoms
Mesmo recebendo o token via cookie, toda camada de autenticação continua baseada em JWT:
- a API gera o token
- grava no cookie
- o browser envia automaticamente em requests subsequentes
- o front apenas interpreta respostas para atualizar UI
Esse modelo é compatível com REST, SSR e futuras server actions.
A implementação une:
✔ Client-Side + Atomic Design
✔ segurança real com JWT em HttpOnly Cookies
✔ código limpo, desacoplado e pronto para SSR
✔ organização profissional para portfolio
Perfeito para demonstrar domínio tanto de UI/UX quanto de boas práticas modernas de autenticação com Next.js + NestJS.

