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. SpringCloud Alibaba学习笔记

    目录 目录 目录 导学 为什么学 学习目标 进阶目标 思路 Spring Cloud Alibaba的重要组件 环境搭建 Spring Boot必知必会 Spring Boot特性 编写第一个Spri ...

  2. 深入分析 Java 乐观锁

    前言 激烈的锁竞争,会造成线程阻塞挂起,导致系统的上下文切换,增加系统的性能开销.那有没有不阻塞线程,且保证线程安全的机制呢?--乐观锁. 乐观锁是什么? 操作共享资源时,总是很乐观,认为自己可以成功 ...

  3. 串口数据监视 Serial Port Monitor

    串口数据监视工具 Serial Port Monitor可以在其它应用读写串口时监视串口数据, 很好用,但只有15天试用期.

  4. 八、git学习之——忽略特殊文件、配置别名、搭建git服务器

    原文来自 一.忽略特殊文件 有些时候,你必须把某些文件放到Git工作目录中,但又不能提交它们,比如保存了数据库密码的配置文件啦,等等,每次git status都会显示Untracked files . ...

  5. 后台运行程序nohup的使用

    linux后台运行程序 nohup python3 test.py >output 2>&1 & 参数解释 用途:不挂断地运行命令. 语法:nohup Command [ ...

  6. Vue-组件化,父组件传子组件常见传值方式

    前言 我们都知道vue核心之一:组件化,vue中万物皆组件,组件化我认为应该来至于模块化的设计思想,比如在模块化开发中,一个模块就是一个实现特定功能的独立的文件,有了模块我们就更方便去阅读代码,更方便 ...

  7. redis 存储验证码 基本使用

    1 redis 存储验证码 基本使用 1.1 setting 配置 CACHES = { "default": { "BACKEND": "djang ...

  8. centos下配置Apache的https强制跳转

    vim /etc/httpd/conf/httpd.conf 新增如下三行 RewriteEngine on RewriteCond  %{HTTPS} !=on RewriteRule  ^(.*) ...

  9. [OI笔记]每周刷题记录

    一些题库: bzoj.uoj.luogu(洛谷).CF.loj.hdu.poj.51nod 下面是一些近期的做题记录 省选爆炸-然后大概就先这样了,要回去读一段时间文化课,如果文化课还不错的话也许还会 ...

  10. Linux系列之Centos安装

    http://mirrors.aliyun.com/centos/6/isos/x86_64/可下载iso文件 第一步 笔记本进入BIOS开启虚拟化 第二步 进入vmware官网下载vm,作者用的是v ...