@fluixi/会话
这个 客户端 作为可再使用的原始文件。 带个小后端
适配器· ; createSession 拥有其他: 符号/用户信号, isAuthenticated, (中文(简体) ),
装入/误入状态、安全部门改革的持久性(通过 @fluixi/core普遍性 storage, (中文(简体) ),
水合物随负荷流动 自动令牌刷新 期满前.
寻找完整的服务器首个认证引擎(OAuth, MFA, 各组织, RBAC, 数据库适配器)? 这是
@fluixi/auth这个包裹很轻, 带上你的后端会话.
import { createSession } from '@fluixi/session';
const session = createSession<Customer, { email: string; password: string }>({
// adapter — the backend-specific bits you provide:
login: (c) => authApi.login(c.email, c.password), // → token | { token, expiresAt }
fetchUser: () => customerApi.me(),
logout: () => authApi.logout(),
register: (d) => authApi.register(d), // optional
refresh: (t) => authApi.refresh(t), // optional → auto-refresh
getExpiry: (t) => decodeJwt(t).exp * 1000, // optional
// hooks (optional):
onLogin, onLogout, onError, onRefresh,
});
session.user(); // reactive
session.isAuthenticated();
session.isLoading();
session.error();
await session.login(creds); // adapter → store token → fetchUser → persist → onLogin
await session.hydrate(); // restore from stored token on load
await session.logout();
提供 refresh +(减)getExpiry 或一个 expiresAt 从 login和届会
计划更新 refreshSkewMs (默认 60s) 符号过期前: 客户端
只是,从来没有在SSR期间.