createAuthTokenStorage
通过 useStorage 持久化 access/refresh/expires token,内存缓存供同步读取。
前置依赖
依赖参数
| 参数名 | 类型 | 说明 |
|---|---|---|
deps.storage | { get, set, remove } | 由 createAuthStorageEnvironment 创建 |
deps.readSync | 可选 | 启动时同步填充缓存 |
deps.Headers | Headers 构造器 | 附加 Bearer 头 |
环境要求
应用侧推荐:
typescript
const env = createAuthStorageEnvironment({
localStorage: window.localStorage,
consoleError: console.error.bind(console),
Headers,
})
const auth = createAuthTokenStorage(
{ storage: env.storage, readSync: env.readSync, Headers: env.Headers },
keys,
)函数签名
typescript
function createAuthTokenStorage(
deps: AuthTokenStorageDeps,
keys: AuthStorageKeys,
options?: { onAccessTokenChange?: (token: string | null) => void },
): AuthTokenStorage参数
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
deps | AuthTokenStorageDeps | 是 | 存储与 Headers |
keys | AuthStorageKeys | 是 | access / refresh / expires 键名 |
options.onAccessTokenChange | function | 否 | access token 变更回调 |
返回值
| 类型 | 说明 |
|---|---|
AuthTokenStorage | 同步读写 token、createAuthRequestInit、hydrateCache |
工作原理
readSync在构造时填充内存缓存,保证getAuthToken同步可用。set*/clear先更新缓存,再void storage.set/remove持久化。hydrateCache可从 storage 异步刷新缓存(多标签页场景可选)。