单点登录<四>----satoken

发布时间 2023-12-14 13:25:05作者: 我也很好

SSO-Server端:处理所有SSO相关请求

  1. http://{host}:{port}/sso/auth -- 单点登录授权地址,接受参数:redirect=授权重定向地址
  2. http://{host}:{port}/sso/doLogin -- 账号密码登录接口,接受参数:name、pwd
  3. http://{host}:{port}/sso/checkTicket -- Ticket校验接口(isHttp=true时打开),接受参数:ticket=ticket码、ssoLogoutCall=单点注销回调地址 [可选]
  4. http://{host}:{port}/sso/signout -- 单点注销地址(isSlo=true时打开),接受参数:loginId=账号id、secretkey=接口调用秘钥

SSO-client端:处理所有SSO相关请求

  1. /sso/login?ticket=""&back="当前访问页面URL"
    • serverAuthUrl/sso/auth?redirect="当前服务器登录页面URL"?back="当前访问页面URL"
    • serverAuthUrl/sso/checkTicket?ticket=""&ssoLogoutCall=""
  2. /sso/logout
    -serverLogoutUrl?loginId=""&timestamp=""&nonce=""&sign=""
  3. /sso/logoutCall
  4. /sso/myinfo

总体开发步骤:

  1. [用户模块]初始化环境, 上传git服务器. (这里用的是JDK17)
  2. [单点登录模块]服务端: 整合satoken单点登录内容到系统
    • 梳理原来的鉴权内容
    • 梳理调用的接口以及参数
    • 添加sso 内容
  3. [单点登录模块]客户端: 添加鉴权, 实现各种跳转
  4. [单点登录模块]客户端: 通过接口获取会话信息
    • 服务端暴露接口,先通过appId, 可以创建会话信息到redis 里面(保存什么信息需要重新设计)
    • 服务端暴露接口,先通过appId, 可以获取到redis 信息
  5. [单点登录模块] 单点注销:
  6. [权限模块]自建应用: 建app表,(appId,生成secrrt),
  7. [权限模块]app大盘查询接口:
  8. [权限模块]创建权限表: 关系表(绑定app,角色表)
  9. [权限模块]权限查询接口: (绑定app,角色表), 通过token

测试用例

  1. 自建应用, 可以实现单点登录, 单点登陆
  2. 可以通过userid,appid,secret, 获取是否登录信息
  3. 可以通过userid,appid,secret, 获取token
  4. 可以通过token 获取所有权限信息