Suas ideias em realidade digital!
Depois de implementar login com JWT, surge uma dúvida comum: onde armazenar o token no front-end?
As opções mais usadas são:
É simples e funciona bem:
localStorage.setItem("token", jwt);
Mas o problema é o XSS (Cross-Site Scripting). Se seu site tiver uma falha de XSS, um atacante pode executar:
localStorage.getItem("token");
E roubar o token.
Funciona igual ao localStorage, mas o token é apagado ao fechar o navegador.
sessionStorage.setItem("token", jwt);
Ainda sofre com XSS.
---O cookie httpOnly não pode ser acessado via JavaScript.
time()+900,
"path" => "/",
"secure" => true,
"httponly" => true,
"samesite" => "Lax"
]);
Se usar cookie, você precisa proteger contra CSRF.
---
Resumo comparativo
Armazenamento
XSS
CSRF
Recomendado?
localStorage
❌ Vulnerável
✔️ Não sofre CSRF
⚠️ Só se não puder usar cookie
sessionStorage
❌ Vulnerável
✔️ Não sofre CSRF
⚠️ Melhor que localStorage
Cookie httpOnly
✔️ Protegido
⚠️ Precisa proteção
✅ Recomendado
---
Conclusão
Para aplicações web modernas:
- Use access token curto
- Guarde refresh token em cookie httpOnly
- Implemente proteção CSRF
- Use HTTPS sempre
Evite armazenar JWT sensível em localStorage se segurança for prioridade.
💡 Veja também: