1

springboot集成轻量级权限认证框架sa-token

 6天前 阅读数 2
以下为 快照 页面,建议前往来源网站查看,会有更好的阅读体验。
原文链接: http://www.cnblogs.com/yunchu/p/14272953.html

sa-token是什么?

sa-token是一个JavaWeb轻量级权限认证框架,主要解决项目中登录认证、权限认证、Session会话等一系列由此衍生的权限相关业务。相比于其他安全性框架较容易上手。

代码示例

1 sa-token的API调用非常简单,有多简单呢?以登录验证为例,你只需要:
2 // 在登录时写入当前会话的账号id 
3 StpUtil.setLoginId(10001);    
4 // 然后在任意需要校验登录处调用以下API  --- 如果当前会话未登录,这句代码会抛出 `NotLoginException`异常
5 StpUtil.checkLogin();   

如果上面的示例能够证明sa-token的简单,那么以下API则可以证明sa-token的强大

 1 StpUtil.setLoginId(10001);          // 标记当前会话登录的账号id
 2 StpUtil.getLoginId();               // 获取当前会话登录的账号id
 3 StpUtil.isLogin();                  // 获取当前会话是否已经登录, 返回true或false
 4 StpUtil.logout();                   // 当前会话注销登录
 5 StpUtil.logoutByLoginId(10001);     // 让账号为10001的会话注销登录(踢人下线)
 6 StpUtil.hasRole("super-admin");     // 查询当前账号是否含有指定角色标识, 返回true或false
 7 StpUtil.hasPermission("user:add");  // 查询当前账号是否含有指定权限, 返回true或false
 8 StpUtil.getSession();               // 获取当前账号id的Session 
 9 StpUtil.getSessionByLoginId(10001); // 获取账号id为10001的Session
10 StpUtil.getTokenValueByLoginId(10001);  // 获取账号id为10001的token令牌值
11 StpUtil.setLoginId(10001, "PC");        // 指定设备标识登录
12 StpUtil.logoutByLoginId(10001, "PC");   // 指定设备标识进行强制注销 (不同端不受影响)
13 StpUtil.switchTo(10044);                // 将当前会话身份临时切换为其它账号 

框架涵盖功能

AfQFRjF.png!mobile

与SpringBoot集成具体API

sa-token.dev33.cn/doc/index.h…

登录验证具体API

sa-token.dev33.cn/doc/index.h…

示例:

 1   StpUtil.setLoginId(Object loginId)
 2   标记当前会话登录的账号id
 3   建议的参数类型:long | int | String, 不可以传入复杂类型,如:User、Admin等等
 4 
 5   StpUtil.logout()
 6   当前会话注销登录
 7 
 8   StpUtil.isLogin()
 9   获取当前会话是否已经登录,返回true=已登录,false=未登录
10 
11   StpUtil.checkLogin()
12   检验当前会话是否已经登录, 如果未登录,则抛出异常:NotLoginException
13   扩展:NotLoginException 对象可通过 getLoginKey() 方法获取具体是哪个 StpLogic 抛出的异常
14   扩展:NotLoginException 对象可通过 getType() 方法获取具体的场景值,详细参考章节:未登录场景值
15 
16   StpUtil.getLoginId()
17   获取当前会话登录id, 如果未登录,则抛出异常:NotLoginException
18   类似API还有:
19   StpUtil.getLoginIdAsString() 获取当前会话登录id, 并转化为String类型
20   StpUtil.getLoginIdAsInt() 获取当前会话登录id, 并转化为int类型
21   StpUtil.getLoginIdAsLong() 获取当前会话登录id, 并转化为long类型
22 
23   StpUtil.getLoginId(T defaultValue)
24   获取当前会话登录id, 如果未登录,则返回默认值 (defaultValue可以为任意类型)
25   类似API还有:
26   StpUtil.getLoginIdDefaultNull() 获取当前会话登录id, 如果未登录,则返回null
27 
28   StpUtil.getLoginIdByToken(String tokenValue)
29   获取指定token对应的登录id,如果未登录,则返回 null
30 
31   StpUtil.getTokenName()
32   获取当前StpLogic的token名称

权限验证查看具体API

sa-token.dev33.cn/doc/index.h…

写在最后

源码开源,作者不易,如果你喜欢这个框架麻烦你随手点一颗小星星哦!

B3ayyym.jpg!mobile


猜你喜欢

关于极客头条


聚合每日国内外有价值,有趣的链接。

AD