koa-sso
用于koa2对接兑吧sso单点登录
流程介绍
一般,我们会在自己的服务也实现一套用户系统,然后去支持sso登录
- 判断用户未登录
- 跳转sso登录页面
http://sso.duiba.com.cn/login
并自己拼接systemId
参数,redirect
参数(登录后需要跳转的地址到) - 在sso平台登录,会自动跳转回我们的固定接口
'/sso/ssoIndex'
,并带上ssoStamp
参数 - 在这个接口里,根据
ssoStamp
去拿ticket
通行证,再用ticket
去拿sso账户信息。(这个ticket是可以在本地自己存起来的,如后面一直要校验sso信息,可以省略之前步骤直接用ticket去取) - sso登录成功,后面就是自己的业务逻辑
use
const Koa =const app =const koaSso =app/*** sso要求本地实现的一个接口,用来对接sso*/const router =router
接口: await fn()调用
通过凭证获取的通行证(原来使用链接参数方式跨域传递通行证,不安全)
ctx.sso.findTicketByStamp()
登录验证接口(验证失败返回null)
ctx.sso.verifyTicketAndGetAdmin()
获取一个用户所有的角色 ctx.sso.getAdminAllRoles()
获取用户在系统下的权限 ctx.sso.getPowerIdsBySystemIdAndAdminId()
加载整个系统得权限树 ctx.sso.loadPowerList()
登出sso ctx.sso.outLogin()