1.1.15 • Published 6 years ago
@sungaoxiang/sso-mock-login v1.1.15
sso-mock-login项目
模拟单点登录模块(Single Sign On),单点登录简单说就是在一个多系统共存的环境下,用户在一处登录后,就不用在其他系统中登录。
我们一般在请求接口时会去请求接口服务器,而接口服务器则会去验证cookie。
若验证失败,则接口服务器会重定向到单点登录服务器(sso服务器)。
这一串地址中:
- sso服务器地址:https://sso-server.com
- 接口服务器验证地址(service):http://api.com/cas
- 验证成功跳转(goto):http://api.com/index
若单点登录服务器已经登陆了,则单点登录服务器重定向接口服务器并携带一个ticket,然后接口服务器验证ticket并存储cookie。这样就我们就登陆了。
而若单点登录服务器没有登陆,则会返回单点登录页面,页面上会存在lt
和execution
两个参数。lt防止重复提交,execution保证走的同一个webflow流程。
获取了lt和execution之后,再加上我们自己的username和password就可以进行application/x-www-form-urlencoded
的登陆了
上面说的有点乱,见谅~~。主要存在两类服务器,一、用于请求接口的接口服务器
(业务务器),二、用于验证登陆的单点登录服务器
(当店登陆务器)
安装
npm i @xkeshi/sso-mock-login --save --registry=http://registry.fe.xkeshi.org
如何使用?
在服务端(通常为server/app.js)引入中间件
createApp({ middlewares: [ // 引入单点登录中间件 require('@xkeshi/sso-mock-login/src/koa-middleware')({ url: '/api/mock/login/sso', // 选填,默认 /api/mock/login/sso,注意:这里配置的url要和下面vue中constants配置的保持一致 }) ], })
在Vue2中引入插件
if (IS_DEBUG) { require(['@xkeshi/sso-mock-login/src/vue-plugin', '../constants'], (mockLogin, cfg) => { // 关于constants的配置在下面 Vue.use(mockLogin, cfg.sso) }) }
配置constants
module.exports = { sso: { url: '/api/mock/login/sso', // 选填,默认 /api/mock/login/sso,注意:这里配置的url要和下面vue中constants配置的保持一致 prefix: '/api', // 选填,默认 /api current: 'prepub', // 选填,当前选用的环境 showAllAccount: false, // 选填,是否展示所有账户,默认显示全部,设为false则只展示当前选中的账户 ssoHosts: { // 必填,动态切换环境时,会在请求参数中加入相应的ssoHost和apiHost dev: { ssoHost: 'https://sso.dev.xxx.net', apiCasUrl: 'http://api.dev.xxx.com:8080/cas' }, test: { ssoHost: 'https://sso.test.xxx.net', apiCasUrl: 'http://api.test.xxx.com:8080/cas' }, prepub: { ssoHost: 'https://sso.prepub.xxx.net', apiCasUrl: 'http://api.prepub.xxx.com:8080/cas' } }, accounts: [{ env: ['prepub'], type: 'admin', role: 'admin', username: 'admin', password: 'xxx' }, { env: ['prepub'], type: '代制', role: '代理商主账号', username: 'aaa', password: 'xxx' }] } }
例子
npm run dev
// 打开localhost:3999
其它
请关注后续新版本,3Q
sso-mock-login
1.1.15
6 years ago