Executando verificação de segurança...
4

JWT Não foi feito pra login

JWT não pode ser alterado nem revogado depois de ser emitido. Ele foi criado com a intenção de "prova de vida", apenas comprovar que você é você. Onde ele brilha? em autenticação entre serviços.

Qual o ideal para autenticação?

Sempre uso nos meus projetos o conceito de cookie de sessão. A maioria dos frameworks já oferece isso por padrão. No laravel não precisa ser configurado nada, no .NET é possível pelo services.ConfigureApplicationCookie(options).

Pedindo para o GPT como implementar em python ele deu 2 alternativas: com flask usando flask-session e com o django que já suporta no framework base.

Quais as melhores práticas?

O cookie deve ter somente um identificador (não devemos confiar nos dados que o usuário pode modificar) e persistir os dados via servidor.
O cookie deve ser HttpOnly e Secure=true. Uma configuração ideal seria assim:

Set-Cookie: session_id=RANDOM_STRONG_SESSION_TOKEN;
Domain=projeto.com;
Path=/;
Max-Age=64800; ou Expires=(timestamp);
HttpOnly;
Secure;
SameSite=Lax;

Mantenha a expiração o mais curta possível a menos que o usuário utilize o remember-me, eu gosto de configurar para 16 horas sem remember-me e 30 dias com.

Carregando publicação patrocinada...