sa-token是什么?

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

代码示例

sa-token的API调用非常简单,有多简单呢?以登录验证为例,你只需要:
// 在登录时写入当前会话的账号id
StpUtil.setLoginId(10001);
// 然后在任意需要校验登录处调用以下API --- 如果当前会话未登录,这句代码会抛出 `NotLoginException`异常
StpUtil.checkLogin(); 如果上面的示例能够证明sa-token的简单,那么以下API则可以证明sa-token的强大
StpUtil.setLoginId(10001); // 标记当前会话登录的账号id

StpUtil.getLoginId(); // 获取当前会话登录的账号id

StpUtil.isLogin(); // 获取当前会话是否已经登录, 返回true或false

StpUtil.logout(); // 当前会话注销登录

StpUtil.logoutByLoginId(10001); // 让账号为10001的会话注销登录(踢人下线)

StpUtil.hasRole("super-admin"); // 查询当前账号是否含有指定角色标识, 返回true或false

StpUtil.hasPermission("user:add"); // 查询当前账号是否含有指定权限, 返回true或false

StpUtil.getSession(); // 获取当前账号id的Session

StpUtil.getSessionByLoginId(10001); // 获取账号id为10001的Session

StpUtil.getTokenValueByLoginId(10001); // 获取账号id为10001的token令牌值

StpUtil.setLoginId(10001, "PC"); // 指定设备标识登录

StpUtil.logoutByLoginId(10001, "PC"); // 指定设备标识进行强制注销 (不同端不受影响)

StpUtil.switchTo(10044); // 将当前会话身份临时切换为其它账号

复制代码

框架涵盖功能

与SpringBoot集成具体API

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

登录验证具体API

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

示例:

  StpUtil.setLoginId(Object loginId)
标记当前会话登录的账号id
建议的参数类型:long | int | String, 不可以传入复杂类型,如:User、Admin等等 StpUtil.logout()

当前会话注销登录 StpUtil.isLogin()

获取当前会话是否已经登录,返回true=已登录,false=未登录 StpUtil.checkLogin()

检验当前会话是否已经登录, 如果未登录,则抛出异常:NotLoginException

扩展:NotLoginException 对象可通过 getLoginKey() 方法获取具体是哪个 StpLogic 抛出的异常

扩展:NotLoginException 对象可通过 getType() 方法获取具体的场景值,详细参考章节:未登录场景值 StpUtil.getLoginId()

获取当前会话登录id, 如果未登录,则抛出异常:NotLoginException

类似API还有:

StpUtil.getLoginIdAsString() 获取当前会话登录id, 并转化为String类型

StpUtil.getLoginIdAsInt() 获取当前会话登录id, 并转化为int类型

StpUtil.getLoginIdAsLong() 获取当前会话登录id, 并转化为long类型 StpUtil.getLoginId(T defaultValue)

获取当前会话登录id, 如果未登录,则返回默认值 (defaultValue可以为任意类型)

类似API还有:

StpUtil.getLoginIdDefaultNull() 获取当前会话登录id, 如果未登录,则返回null StpUtil.getLoginIdByToken(String tokenValue)

获取指定token对应的登录id,如果未登录,则返回 null
StpUtil.getTokenName()

获取当前StpLogic的token名称

复制代码

权限验证查看具体API

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

写在最后

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

最新文章

  1. MYSQL (二)
  2. asp.netDataTable导出excel方法(2)
  3. 2、NASA HS3(Hurricane AND Server Storm Sentinel)
  4. struts2进阶篇(2)
  5. 使用jconsole检测linux服务器
  6. 离robots.txt启动网络爬虫之旅
  7. 看懂gradle
  8. Codeforces #377 Div2
  9. Maven学习(三)
  10. 最佳时间买入卖出股票 Best Time to Buy and Sell Stock LeetCode
  11. js实现刷新
  12. NOIP-Vigenère密码
  13. linux磁盘管理系列三:LVM的使用
  14. 阿里云实现putty私钥登录全过程
  15. AngularJS实战之Controller之间的通信
  16. 创建多模块springcloud应用eureka server和client和消费端demo
  17. codeforces 251 div2 C. Devu and Partitioning of the Array 模拟
  18. HDUOJ--Strange fuction
  19. Java之聊天室系统设计二
  20. 前端之JS的线程(最易懂)

热门文章

  1. LeetCode初级算法之数组:66 加一
  2. js 导出div 中的类容为 word 文件
  3. 笔记-[ZJOI2014]力
  4. J20航模遥控器开源项目系列教程(六)亚克力外壳制作
  5. redis 存储验证码 基本使用
  6. Nacos源码深度解析1-服务注册初始化(客户端)
  7. 来体验下Linux吧
  8. css 02-CSS属性:背景属性
  9. 真香!Python十大常用文件操作,轻松办公
  10. Java 细粒度锁续篇