🔑JWT & Auth

JWT Refresh Token Pattern

Long-lived token used to generate new access tokens.

Explanation

Refresh tokens are typically opaque strings or JWTs stored securely (e.g., HttpOnly cookies) to maintain a user's session.

Examples

Refresh Logic
Output
POST /auth/refresh { "refreshToken": "..." }

Code Examples

Refresh Payload
{
  "sub": "user_123",
  "token_version": 5,
  "iat": 1705069800,
  "exp": 1707661800
}

💡 Tips

  • Include a "token version" to allow revoking all tokens for a user
  • Refresh tokens should have a much longer expiry than access tokens
  • Store in a secure, same-site cookie to prevent XSS

⚠️ Common Pitfalls

  • If a refresh token is stolen, the attacker can keep generating access tokens