Redis Keys

Last updated

This page lists every key the package writes to Redis, with TTLs and write timing, for monitoring and debugging.

Key List

Key Value TTL
refresh:<refresh_id> RefreshData JSON refreshTokenExpires
revoke:<access_token> "1" accessTokenExpires

Write Timing

Operation Key TTL
CreateJWT() refresh:<id>, version: 1 refreshTokenExpires
Refresh (no rotation) refresh:<id>, version + 1 Reset to refreshTokenExpires
Refresh (rotation) Old refresh:<id> 5 seconds
Refresh (rotation) New refresh:<id>, version: 0 refreshTokenExpires
RevokeJWT() refresh:<id> 5 seconds
RevokeJWT() revoke:<access_token> accessTokenExpires

Debugging Commands

# List all sessions
redis-cli --scan --pattern 'refresh:*'

# Inspect a Refresh ID and its remaining seconds
redis-cli GET 'refresh:<refresh_id>'
redis-cli TTL 'refresh:<refresh_id>'

# Force a session to end
redis-cli DEL 'refresh:<refresh_id>'

After deleting refresh:<id>, the session can no longer refresh once its Access Token expires; an unexpired Access Token still passes verification until it expires.

Capacity

revoke: keys are named after the full Access Token, so each entry is roughly the token length (a few hundred bytes); under heavy logout volume, accessTokenExpires bounds how long they are kept.

Related: Refresh Token Rotation, Token Revocation

中文