Loading…
Loading…
Overview of TokenManager storage implementations and when to use each.
The library provides base TokenManager classes that you extend for different storage backends.
| Class | Storage Method | API Type |
|---|---|---|
TokenManagerWithBrowserStorage | localStorage + sessionStorage | Synchronous |
TokenManagerWithCookieStorage | HTTP cookies (universal-cookie) | Asynchronous |
TokenManager (abstract) | Extend for custom sync storage | Synchronous |
AsyncTokenManager (abstract) | Extend for custom async storage | Asynchronous |
Uses the Web Storage API. Best for simple client-side applications.
import { TokenManagerWithBrowserStorage, SessionBehavior } from '@woographql/session-utils'; const tokenManager = new TokenManagerWithBrowserStorage({ ID: 'my-store', behavior: [SessionBehavior.withAuth], startSession: async (tokens) => cartToken, refreshAuthToken: async (refreshToken) => newAuthToken, });
Storage mapping:
| Token | Storage |
|---|---|
sessionToken | localStorage |
authToken | localStorage |
refreshToken | localStorage |
clientSessionId | sessionStorage |
Uses HTTP cookies via universal-cookie. Useful when you need cookie-based storage without custom implementation.
import { TokenManagerWithCookieStorage, SessionBehavior } from '@woographql/session-utils'; const tokenManager = new TokenManagerWithCookieStorage({ ID: 'my-store', behavior: [SessionBehavior.withAuth], startSession: async (tokens) => cartToken, refreshAuthToken: async (refreshToken) => newAuthToken, });
| Use Case | Implementation |
|---|---|
| Simple client-side app | TokenManagerWithBrowserStorage |
| Next.js client-side | useTokenManager Hook |
| Next.js route handlers | withTokenManager |
| Next.js middleware | withMiddlewareTokenManager |
| Approach | XSS Protection | Server Access |
|---|---|---|
| HttpOnly Cookies | Protected | Yes |
| localStorage | Vulnerable | No |
For production applications, HttpOnly cookies are recommended. See the implementation guides for secure patterns.