Session Management
API Version: 1.0.0
Overview
DoneIsBetter SSO uses secure HTTP-only cookies for session management, providing robust security while maintaining a seamless user experience across your applications.
Session Lifecycle
1. Session Creation
Sessions are created upon successful authentication and contain:
- Unique session identifier
- User information
- Permissions
- Expiration timestamp
2. Session Validation
// Validate current session const sso = new SSOClient('https://sso.doneisbetter.com'); const session = await sso.validateSession(); if (session.isValid) { console.log('Session expires at:', session.session.expiresAt); console.log('User:', session.user); } else { console.log('Session is invalid or expired'); }
3. Session Expiration
Sessions automatically expire after:
- 30 minutes of inactivity
- 8 hours from creation (maximum lifetime)
- User explicitly signs out
Automatic Session Refresh
Implement automatic session refresh to maintain user sessions during active use:
function setupSessionRefresh() { // Check session every 5 minutes setInterval(async () => { const sso = new SSOClient('https://sso.doneisbetter.com'); try { const result = await sso.validateSession(); if (!result.isValid) { // Redirect to login or handle expired session sso.redirectToLogin(); } } catch (error) { console.error('Session refresh failed:', error); } }, 5 * 60 * 1000); }
Cross-Domain Sessions
To enable SSO across multiple domains:
- Register all domains with DoneIsBetter SSO
- Configure CORS settings for each domain
- Ensure consistent cookie settings across domains
// Example domain registration object { "domain": "your-app.com", "environments": { "development": ["localhost:3000"], "production": ["app.your-domain.com"] }, "settings": { "sameSite": "None", "secure": true } }
Security Considerations
- All cookies are HTTP-only and secure
- Session IDs are cryptographically secure
- Sessions are invalidated upon sign-out
- IP binding is optional for additional security
- Rate limiting is applied to all session endpoints
Best Practices
- Implement proper error handling for session operations
- Use the provided client library for consistent behavior
- Monitor session events for security purposes
- Regular validation of active sessions
- Proper cleanup on application shutdown
Troubleshooting
Common Issues
- Session not persisting: Check CORS and cookie settings
- Frequent session expiration: Verify refresh mechanism
- Cross-domain issues: Confirm domain registration