cz sso 免登插件
开启插件
-
config/plugin.js
:
exports.czLogin = true;
-
config/config.{env}.js
:
config.czLogin = {
appCode: "xxxx",
appSecret: "xxxxxxx",
clientType: "rest",
userField: "user",
ignore: "/api", // 哪些路径可以不经过登陆访问,可以传正则或者方法(https://github.com/koajs/userauth)
match: "/pages", // 指定哪些路径必须要登陆访问,可以传正则或者方法
needSsoUser: true,
refreshToken: false,
ssoURL: "******",
loginCallback: function* (ctx, user) {}, // 一般不需要配置。登录成功后的回掉函数,有机会整理/改变 user
// 信息,并指定 redirectUrl。 只执行一次,要求返回数据格式为:
// [user, redirectUrl],
// 一般返回 [user, null] 即可,会跳转到 referer url
ssoType: "SSO_TYPE_ONLY_AUTH", // 目前仅支持这种
};
在开启了 czLogin
的插件之后,访问所有需要登陆的路径,
可以从 ctx.session[{userField}]
上获取到用户信息,默认的 userField
为 user
:
const loginUser = this.session.user;
同时,为了保持基于 egg 框架的一致性,egg-cz-login
同时会设置 ctx.user
,用于获取登陆的用户信息。
const loginUser = this.user;
// 获取当前用户工号
const userId = this.userId;
注意,对 ctx.user
的任何修改,都会被 session 中间件保存下来,当前用户退出登陆之前都会生效。
更多的配置查看:https://www.npmjs.com/package/koa-buc