Skip to main content
UserSession representa uma sessão autenticada do usuário. Ela permite revogar acesso antes da expiração do accessToken, controlar refresh tokens e encerrar sessões automaticamente quando regras de segurança exigirem.

Campos

Relacionamentos

  • Relaciona-se com User

Persistência

UserSession é persistida como estado server-side da autenticação. A aplicação precisa consultar a sessão pelo sid recebido no token e listar sessões por usuário para logout global e gestão de dispositivos.

Regras de Negócio

  • O accessToken não é persistido. Ele carrega sid, sub, aud, type, iat e exp.
  • A sessão não guarda organizationId, membershipId, roles ou permissions. Escopo e autorização são resolvidos pelo Profile e pelas regras do domínio de Authorization.
  • O refresh token nunca é armazenado em texto puro nem com criptografia reversível. Apenas refreshTokenHash é persistido.
  • A cada refresh bem-sucedido, um novo refresh token é emitido e refreshTokenHash é atualizado.
  • EXPIRED não é status persistido. Expiração é calculada por refreshExpiresAt e inactivityExpiresAt.
  • A sessão é inválida quando status = REVOKED, refreshExpiresAt passou ou inactivityExpiresAt passou.
  • Alteração de senha, bloqueio de usuário, logout e logout global revogam sessões atualizando o estado da sessão por sid.
  • A audiência da sessão precisa bater com o aud recebido no token.

Enums

UserSessionAudience

UserSessionStatus

Example