Token Management
This guide covers how to manage authentication tokens, including storage, refresh, and expiration handling.
Token Types
Access Token
Purpose: Authenticate API requests
Lifetime: Typically 15 minutes
Format: JWT (JSON Web Token)
Usage: Include in
Authorizationheader for authenticated requests
Refresh Token
Purpose: Obtain new access tokens without re-authentication
Lifetime: Typically 7 days
Format: Opaque token string
Usage: Exchange for new access token when current one expires
Storing Tokens
The SDK does not store tokens internally. You must manage token storage in your application.
Browser Storage Options
localStorage (Persistent)
Pros: Persists across browser sessions Cons: Accessible to JavaScript (XSS risk)
sessionStorage (Session-only)
Pros: Cleared when tab closes Cons: Still accessible to JavaScript
HTTP-Only Cookies (Recommended for Server-Side)
For server-side applications, use HTTP-only cookies set by your backend:
Checking Token Expiration
Use JWT utilities to check token expiration:
Refreshing Tokens
When an access token expires, use the refresh token to get a new one:
Alternative: Refresh with API Key
You can also refresh using an API key:
Automatic Token Refresh
Implement automatic token refresh to improve user experience:
Token Refresh Interceptor
For applications using HTTP clients, implement a token refresh interceptor:
Logout
To logout, revoke tokens on the server and clear local storage:
Security Considerations
Never expose refresh tokens - Keep them server-side if possible
Use HTTPS - Always use HTTPS to protect tokens in transit
Implement CSRF protection - Use CSRF tokens for state-changing operations
Token rotation - Consider rotating refresh tokens on each refresh
Monitor token usage - Log and monitor token refresh patterns for anomalies
Next Steps
User Consent - Manage user consent records
API Reference - Learn about authenticated APIs
Last updated