SSO-Server端:处理所有SSO相关请求
- http://{host}:{port}/sso/auth -- 单点登录授权地址,接受参数:redirect=授权重定向地址
- http://{host}:{port}/sso/doLogin -- 账号密码登录接口,接受参数:name、pwd
- http://{host}:{port}/sso/checkTicket -- Ticket校验接口(isHttp=true时打开),接受参数:ticket=ticket码、ssoLogoutCall=单点注销回调地址 [可选]
- http://{host}:{port}/sso/signout -- 单点注销地址(isSlo=true时打开),接受参数:loginId=账号id、secretkey=接口调用秘钥
SSO-client端:处理所有SSO相关请求
- /sso/login?ticket=""&back="当前访问页面URL"
- serverAuthUrl/sso/auth?redirect="当前服务器登录页面URL"?back="当前访问页面URL"
- serverAuthUrl/sso/checkTicket?ticket=""&ssoLogoutCall=""
- /sso/logout
-serverLogoutUrl?loginId=""×tamp=""&nonce=""&sign="" - /sso/logoutCall
- /sso/myinfo
总体开发步骤:
- [用户模块]初始化环境, 上传git服务器. (这里用的是JDK17)
- [单点登录模块]服务端: 整合satoken单点登录内容到系统
- 梳理原来的鉴权内容
- 梳理调用的接口以及参数
- 添加sso 内容
- [单点登录模块]客户端: 添加鉴权, 实现各种跳转
- [单点登录模块]客户端: 通过接口获取会话信息
- 服务端暴露接口,先通过appId, 可以创建会话信息到redis 里面(保存什么信息需要重新设计)
- 服务端暴露接口,先通过appId, 可以获取到redis 信息
- [单点登录模块] 单点注销:
- [权限模块]自建应用: 建app表,(appId,生成secrrt),
- [权限模块]app大盘查询接口:
- [权限模块]创建权限表: 关系表(绑定app,角色表)
- [权限模块]权限查询接口: (绑定app,角色表), 通过token
测试用例
- 自建应用, 可以实现单点登录, 单点登陆
- 可以通过userid,appid,secret, 获取是否登录信息
- 可以通过userid,appid,secret, 获取token
- 可以通过token 获取所有权限信息