Mudança bem controlada — 5 arquivos para modificar.
Backend (3 arquivos):
- rotas.ts — login e cadastro passam a setar o JWT via Set-Cookie (httpOnly, Secure, SameSite) em vez de retornar no body JSON
- autenticacao.ts — middleware lê o token do cookie em vez do header Authorization
- aplicativo.ts — adicionar cookie-parser middleware (já tem credentials: true no CORS)
Frontend (2 arquivos):
- api.ts — mudar withCredentials: true, remover interceptor que injeta Authorization header
- AuthContext.tsx — remover localStorage.setItem('token'), usar um endpoint /api/auth/me para verificar se está autenticado (já que o cookie httpOnly não é legível pelo JS)
Impactos adicionais:
Precisa de um novo endpoint GET /api/auth/me que retorna os dados do usuário autenticado
O logout precisa de um endpoint POST /api/auth/logout que limpa o cookie no servidor
Os dados do usuário (localStorage.setItem('usuario')) podem continuar no localStorage — não são sensíveis
O token JWT fica invisível ao JavaScript, eliminando o risco de roubo via XSS.
Mudança bem controlada — 5 arquivos para modificar.
Backend (3 arquivos):
Frontend (2 arquivos):
Impactos adicionais:
Precisa de um novo endpoint GET /api/auth/me que retorna os dados do usuário autenticado
O logout precisa de um endpoint POST /api/auth/logout que limpa o cookie no servidor
Os dados do usuário (localStorage.setItem('usuario')) podem continuar no localStorage — não são sensíveis
O token JWT fica invisível ao JavaScript, eliminando o risco de roubo via XSS.