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 Authorization header 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

  1. Never expose refresh tokens - Keep them server-side if possible

  2. Use HTTPS - Always use HTTPS to protect tokens in transit

  3. Implement CSRF protection - Use CSRF tokens for state-changing operations

  4. Token rotation - Consider rotating refresh tokens on each refresh

  5. 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