1.需求分析

1.以下需求是从现有代码提取出来的。

  • 可以钉钉端、WEB端等同时登陆
  • 可以通过refresh_token进行令牌的刷新,刷新后旧令牌失效
  • 在刷新令牌执行后30s内,旧令牌仍然有效
  • 提供group参数的登录,可以实现手动退出其他端登录的功能

2.新增需求

  • 可以对接口进行权限的限制

    2.概要设计

    BI认证模块开发文档 - 图1

    3.详细设计

    鉴于原登录逻辑不进行修改,只将令牌换成SpringSecurityOauth2发布的jwt令牌。当用户携带此令牌访问接口时,SpringSecurity会帮我们进行鉴权。

    3.1登录

    3.1.1钉钉扫码登录设计

    1.时序图 BI认证模块开发文档 - 图2

    3.1.2账号密码登录设计

    1.时序图 BI认证模块开发文档 - 图3

    3.2权限认证

    1.时序图 BI认证模块开发文档 - 图4

    3.3令牌刷新

    1.时序图 BI认证模块开发文档 - 图5