Token Expiration
Expiration Strategy
| Token | Lifetime | Purpose |
|---|---|---|
| Access | 15-30 min | API access |
| Refresh | 7-30 days | Get new access tokens |
| Session | Hours-days | Server-side sessions |
Expiration Handling
// Client-side
if (response.status === 401) {
// Token expired, try refresh
const newToken = await refreshAccessToken();
if (newToken) {
return retry originalRequest(newToken);
} else {
// Refresh expired, redirect to login
redirectToLogin();
}
}
Shorter = More Secure, More Refreshes
Longer = Less Secure, Better UX
Token Management
Token Lifecycle
- Generation: Create with short expiry
- Validation: Verify signature and claims
- Refresh: Exchange refresh token for new access token
- Revocation: Invalidate on logout/security events
Storage
- Access tokens: Memory or short-lived storage
- Refresh tokens: Secure HTTP-only cookies
- Revoked tokens: Redis blacklist with TTL
Best Practices
- Rotate signing keys regularly
- Implement token binding
- Monitor token usage patterns
Key Points
- Understanding Token Expiration is essential for production systems
- Always consider scalability and maintainability
- Test thoroughly before deploying to production
- Monitor performance and set up alerting
Common Patterns
- Validation: Always validate input at the boundary
- Error Handling: Use structured error responses
- Logging: Log key events for debugging
- Testing: Unit, integration, and load tests
- Documentation: Keep docs updated with code changes
Practice Problems
Design and implement a solution for Token Expiration in a backend system. Consider scalability, error handling, and production readiness.
Solution
// Token Expiration implementation
// Key aspects: validation, error handling, logging, testing
public class TokenExpiration {
// Production-ready implementation
}Identify and handle edge cases for Token Expiration. What happens under high load, with invalid input, or during failures?
Solution
// Edge case handling:
// 1. Null/empty input -> validation
// 2. High load -> rate limiting, queuing
// 3. Failures -> retries, circuit breaker
// 4. Concurrent access -> locks, idempotencyWrite a testing strategy for Token Expiration. Include unit tests, integration tests, and performance tests.
Solution
// Test plan:
// - Unit: 80% coverage target
// - Integration: API contracts
// - Performance: latency, throughput
// - Chaos: failure injectionQuiz
1. Access token should expire in?
2. What happens when access token expires?
3. What is the primary purpose of Token Expiration?
4. What is a common mistake when implementing Token Expiration?
Flashcards
Question
Access token lifetime?
Click to reveal answer
Answer
15-30 minutes
Question
When access token expires?
Click to reveal answer
Answer
Use refresh token to get new one
Question
What is Token Expiration?
Click to reveal answer
Answer
Token Expiration is a key concept in backend development.
Question
When to use Token Expiration?
Click to reveal answer
Answer
Use Token Expiration when building production systems that require reliability, scalability, and maintainability.
Question
Token Expiration best practices
Click to reveal answer
Answer
Follow SOLID principles, write clean code, test thoroughly, document decisions, and monitor in production.
Revision Notes
Key Takeaways
- 1.Access: 15-30 min, Refresh: 7-30 days
- 2.Handle 401 with refresh flow
- 3.Shorter = more secure, more refreshes
Interview Tips
- •Design token expiration strategy
- •Handle expired tokens
Cheat Sheet
Token Expiration
- Access: 15-30 min
- Refresh: 7-30 days
- On 401: refresh flow
- Balance: security vs UX