feat(auth): aumenta sessão web pra 12h (pedido do usuário: call center, agente não pode cair no meio do turno)
Access token JWT (packages/auth/src/tokens.ts) e o teto absoluto do cookie de sessão (duplicado em login/post-login/select-tenant/middleware) subiram de 15min/8h pra 12h. O refresh silencioso do middleware continua existindo e deslizando a sessão pra frente a cada requisição — 12h agora é só o teto de segurança pra quando esse refresh falhar (aba parada, logout em outro lugar), não o intervalo real de renovação. Verificado com login real: token decodificado mostra exp-iat = 12h exatas. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01BFaBaBSQGhyXGEgtTYZGV8
This commit is contained in:
@@ -11,8 +11,10 @@ Implementado em `packages/auth`, sobre o schema criado pela migration
|
||||
e-mail não existe, e devolve o mesmo erro genérico (`InvalidCredentialsError`)
|
||||
em qualquer caso de falha — mitiga user-enumeration por diferença de tempo
|
||||
de resposta ou mensagem.
|
||||
- Access token: JWT (HS256, `jose`), TTL 15 minutos, claims `{ sub, sessionId,
|
||||
tenantId? }`.
|
||||
- Access token: JWT (HS256, `jose`), TTL 12 horas (era 15 minutos até a
|
||||
PHASE 69 — pedido do usuário: turno de agente de call center não pode
|
||||
cair no meio, o refresh silencioso do middleware existe mas 15min forçava
|
||||
ele rodar a cada poucos minutos), claims `{ sub, sessionId, tenantId? }`.
|
||||
- Refresh token: string opaca aleatória (32 bytes), **nunca** JWT. Só o
|
||||
SHA-256 fica salvo em `sessions.refresh_token_hash` — posse do token original
|
||||
é a prova de identidade.
|
||||
|
||||
Reference in New Issue
Block a user