sa-token/sa-token-doc/doc/use/many-account.md
2020-09-07 02:21:35 +08:00

1.4 KiB
Raw Blame History

多账号验证


问题

  • 有的时候在一个项目中,我们会设计两套账号体系,比如一个商城的user表admin表
  • 这时候,我们就需要将两套账号的权限认证分开,防止冲突

核心思想

  • sa-token在设计时充分考虑了多账号体系时的各种逻辑
  • 以上几篇介绍的api都是经过 StpUtil类的各种静态方法进行各种验证,而如果你深入它的源码,点此阅览
  • 就会发现,此类并没有任何代码逻辑,唯一做的事就是对成员变量stpLogic的各个API进行包装一下进行转发
  • 这样做有两个优点
    • StpLogic类的所有函数都可以被重写,按需扩展
    • 在构造方法时随意传入一个不同的 loginKey,就可以再造一套账号登录体系

操作示例

比如说,对于StpUtil类,我们只做admin账号权限验证,而对于user账号,我们则:

  1. 新建一个新的权限验证类,比如: StpUserUtil.java
  2. StpUtil.java类的全部代码复制粘贴到 StpUserUtil.java
  3. 更改一下其 loginKey 比如:
	// 底层的 StpLogic 对象  
	public static StpLogic stpLogic = new StpLogic("user");	// loginKey改为user 
  1. 接下来就可以像调用StpUtil.java一样调用 StpUserUtil.java了,这两套账号认证的逻辑是完全隔离的