@pubinfo-pr/module-auth
v0.238.1
Published
Pubinfo 的认证模块,核心是“认证客户端 + 路由模块”两层能力:一层负责统一登录、回调认证、二维码渲染;一层负责把 `/auth/:type` 回调页和登录跳转逻辑挂到应用里。
Readme
@pubinfo/module-auth
Pubinfo 的认证模块,核心是“认证客户端 + 路由模块”两层能力:一层负责统一登录、回调认证、二维码渲染;一层负责把 /auth/:type 回调页和登录跳转逻辑挂到应用里。
它在做什么
- 提供
createAuth(),统一封装第三方登录 Provider - 提供
createAuthModule(),把认证回调页和登录前跳转逻辑注册到 Pubinfo 应用 - 内置多种 Provider:
FourA、DingZJ、Sso、Credentials、DefaultCredentials - 支持插件扩展,目前内置
twoFactor双因子认证插件 - 保留旧版
auth()和一组兼容导出,但代码里已经标记为 deprecated
推荐接入方式
import { createAuth, createAuthModule } from '@pubinfo/module-auth';
import { FourA } from '@pubinfo/module-auth/providers';
const authClient = createAuth({
baseURL: import.meta.env.VITE_APP_API_BASEURL,
providers: [
FourA({
clientId: 'your-client-id',
redirectUri: 'https://example.com/#/auth/4A',
}),
],
});
export function setupAuth() {
return createAuthModule(authClient, {
pages: {
signIn: '/login',
},
redirectTo: '/',
});
}工作方式
createAuth()负责根据 provider 执行signIn、authenticate、renderQRCode、redirectcreateAuthModule()会注册/auth/:type页面- 当访问登录页路径时,如果存在
cas类型 provider,会自动重定向到统一登录页 - 当回调页认证成功时,会把 token 写入
userStore,然后跳转到redirect或默认目标页
内置 Provider
FourA: 4A 统一认证DingZJ: 浙政钉扫码登录,支持redirect和embedSso: SSO 单点登录Credentials: 自定义凭证登录 provider 外壳DefaultCredentials: 对接底座默认用户名密码登录
插件扩展
createAuth() 支持 plugins。目前内置:
twoFactor: 扩展出twoFactor.sendOtp()和twoFactor.verifyOtp()
import { createAuth } from '@pubinfo/module-auth';
import { twoFactor } from '@pubinfo/module-auth/plugins';导出
createAuthModulecreateAuthLoginWithFourAauthauthenticate/redirect/renderQRCode/signIn
其中最后四个兼容旧用法,但应优先迁移到 authClient.xxx。
