fix(auth): access token de 15min para 8h
Usuário pediu explicitamente pelo menos 8h. O TTL curto original era deliberado (ADR-0003, reduzir janela de token vazado), mas o frontend nunca implementou refresh silencioso — na prática o usuário era derrubado no meio do trabalho sem nenhuma renovação automática. 8h é um paliativo real, documentado como tal num adendo na própria ADR-0003 (com a mitigação que já existe — revogação de sessão continua granular — e o que resolveria isso de verdade sem abrir mão de segurança: refresh silencioso no frontend). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -9,7 +9,16 @@ export interface AccessTokenPayload {
|
||||
app: "core" | "reseller" | "subscriber";
|
||||
}
|
||||
|
||||
const ACCESS_TOKEN_TTL_SECONDS = 15 * 60; // 15 min — ADR-0003
|
||||
/**
|
||||
* 8h — revisado a partir dos 15min originais da ADR-0003 (ver o adendo no
|
||||
* próprio documento): o frontend não implementa refresh silencioso ainda
|
||||
* (`AuthContext.tsx`, `session.ts` — "No refresh-token rotation in this
|
||||
* leva"), então um access token de 15min derrubava o usuário no meio do
|
||||
* trabalho. 8h cobre um expediente inteiro sem exigir login de novo;
|
||||
* revogação continua granular via a tabela `sessions` (logout/"encerrar
|
||||
* todas as sessões" não dependem da expiração do JWT).
|
||||
*/
|
||||
const ACCESS_TOKEN_TTL_SECONDS = 8 * 60 * 60;
|
||||
const REFRESH_TOKEN_TTL_DAYS = 30;
|
||||
const MFA_CHALLENGE_TTL_SECONDS = 2 * 60;
|
||||
const MFA_CHALLENGE_PURPOSE = "mfa_challenge" as const;
|
||||
|
||||
Reference in New Issue
Block a user