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…

写在最后

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

springboot集成轻量级权限认证框架sa-token的更多相关文章

  1. shiro太复杂?快来试试这个轻量级权限认证框架!

    前言 在java的世界里,有很多优秀的权限认证框架,如Apache Shiro.Spring Security 等等.这些框架背景强大,历史悠久,其生态也比较齐全. 但同时这些框架也并非十分完美,在前 ...

  2. 权限认证 cookie VS token

    权限认证 cookie VS token 我前公司的应用都是 token 授权的,现公司都是维护一个 session 确认登录状态的.那么我在这掰扯掰扯这两种权限认证的方方面面. 工作流程 先说 co ...

  3. 登陆模块,这个是很重要的模块,有shiro和spring security专门的权限认证框架

    登陆模块,这个是很重要的模块,有shiro和spring security专门的权限认证框架

  4. springboot中实现权限认证的两个框架

    web开发安全框架 提供认证和授权功能! 一.SpringSecurity 1.导入依赖 <dependency> <groupId>org.springframework.b ...

  5. SpringBoot接入轻量级分布式日志框架(GrayLog)

    我是3y,一年CRUD经验用十年的markdown程序员‍常年被誉为优质八股文选手 前两天我不是发了一篇数据链路追踪的文章嘛,在末尾也遗留了TODO:运行应用的服务器一般是集群,日志数据会记录到不同的 ...

  6. spring-security用户权限认证框架

    大家知道在spring中有一个基于acegi开发的spring-security的权限管理模块,它是一个轻量级框架. SpringSecurity能以声明的方式来保护Web应用程序的URL访问,只需简 ...

  7. 10分钟简单学习net core集成jwt权限认证,快速接入项目落地使用

    什么是JWT JSON Web Token(JWT)是目前最流行的跨域身份验证.分布式登录.单点登录等解决方案. JWT的官网地址:https://jwt.io/ 通俗地来讲,JWT是能代表用户身份的 ...

  8. Spring Security构建Rest服务-1205-Spring Security OAuth开发APP认证框架之Token处理

    token处理之二使用JWT替换默认的token JWT(Json Web Token) 特点: 1,自包含:jwt token包含有意义的信息 spring security oauth默认生成的t ...

  9. Spring Security构建Rest服务-1204-Spring Security OAuth开发APP认证框架之Token处理

    token处理之一基本参数配置 处理token时间.存储策略,客户端配置等 以前的都是spring security oauth默认的token生成策略,token默认在org.springframe ...

随机推荐

  1. Scrum 冲刺第七天

    一.每日站立式会议 1.会议内容 1)进行每日工作汇报 张博愉: 昨天已完成的工作:与林梓琦同学完成发帖模块的交接 今日工作计划:完善发帖模块的点赞.上传图片功能 工作中遇到的困难:Mybatis的一 ...

  2. HTML5中的自定义属性data-*

    在html5中,给元素添加自定义属性需要用到data-*,比如data-name,添加完data-自定义属性之后通过元素的dataset属性来访问其值. dataset与getAttribute/se ...

  3. AcWing 311 .月之谜

    大型补档补了一年 题目链接 考虑枚举月之数的数列和,然后展开dp预处理 设当前模数为 \(P\) \(f[i][j][k]\) 表示一共有 i 位数字,数位和为 j,数值和 % P 的值为 K \(f ...

  4. 笔记-[JSOI2011]柠檬

    笔记-[JSOI2011]柠檬 [JSOI2011]柠檬 \(f_i\) 表示到第 \(i\) 只贝壳最多可以换得的柠檬数. 令 \(c_i=\sum_{h=1}^i[s_h=s_i]\). \[\b ...

  5. geoserver的demo使用过程

    先贴一个效果图,使用的geoserver版本2.18.0,需要对应版本插件netcdf插件[Extensions>Coverage Formats>NetCDF],使用tomcat8进行发 ...

  6. python叠加矩形框图层

    两种方式以及效果: 方式一,使用PIL.Image.blend方式: from PIL import Image, ImageDraw im = Image.open('d:/tmp/58.249.0 ...

  7. EHCACHE实现登录错误次数账号锁定

    使用EHCACHE实现账号密码登录校验失败5次锁定10分钟 <?xml version="1.0" encoding="UTF-8"?> <e ...

  8. gulp-sourcemaps的用法

    1.项目文件夹中,安装gulp-sourcemaps插件 npm install --save gulp-sourcemaps 2.gulpfile.js文件,导入要用到的插件. 如: // 引入gu ...

  9. 利用vs pcl库将多个PCD文件合并成一张PCD地图

    主机环境:win10系统,pcl库1.11.1, vs2019 pcl库安装以及环境配置如下连接: https://www.jb51.net/article/190710.htm 代码很简单,主要是做 ...

  10. Day9 python高级特性-- 列表生成式 List Comprehensions

    Python内置的非常简单却强大的可以用来创建list的生成式.    私理解为,就是for循环出来的结果搞成个list~~~~    要生成顺序增量list可以使用list(range(x,y))来 ...