searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

轻量级权限认证框架Sa-Token介绍

2023-06-12 06:15:51
18
0

相比于其他常用的权限认证框架如Shiro、SpringSecurity等,Sa-Token是一个轻量级的权限认证框架,其使用方式简单,容易上手,更加适用于小型项目的研发。

常用功能

Sa-Token的常用功能主要有:

登录认证:单端登录、多端登录、同端互斥登录、七天内免登录

权限认证:权限认证、角色认证、会话二级认证

单点登录:内置三种单点登录模式:无论是否跨域、是否共享Redis,都可以搞定

OAuth2.0: 轻松搭建 OAuth2.0 服务,支持openid模式

微服务鉴权:适配Gateway、ShenYu、Zuul等常见网关的路由拦截认证

在SpringBoot环境中集成

依赖引入

Maven方式依赖引入

<dependency>
    <groupId>cn.dev33</groupId>
    <artifactId>sa-token-spring-boot-starter</artifactId>
    <version>1.34.0</version>
</dependency>

配置文件

Sa-Token可以零配置启动,如果你需要定制化需求,则可通过在配置文件(如application.yml)中添加如下配置实现

sa-token: 
    # token名称 (同时也是cookie名称)
    token-name: satoken
    # token有效期,单位s 默认30天, -1代表永不过期 
    timeout: 2592000
    # token临时有效期 (指定时间内无操作就视为token过期) 单位: 秒
    activity-timeout: -1
    # 是否允许同一账号并发登录 (为true时允许一起登录, 为false时新登录挤掉旧登录) 
    is-concurrent: true
    # 在多人登录同一账号时,是否共用一个token (为true时所有登录共用一个token, 为false时每次登录新建一个token) 
    is-share: true
    # token风格
    token-style: uuid
    # 是否输出操作日志 
    is-log: false

登录认证

登录接口Demo

    @RequestMapping("login")
    public SaResult doLogin(String name, String pwd) {
        //获取保存的用户信息
        User user = userDao.getByUserName(name);
        //与前端提交的用户信息比对
        if(user.getName().equals(name) && user.getPwd().equals(pwd)) {
            // 调用Sa-Token提供的方法登录,该方法利用本地缓存记录登录信息
            StpUtil.login(user.getId());
            return SaResult.ok("登录成功");
        }
        return SaResult.error("登录失败");
    }

此外,Sa-Token还提供了很多API能方便获取登录相关信息

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

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

// 检验当前会话是否已经登录, 如果未登录,则抛出异常:`NotLoginException`
StpUtil.checkLogin();

// 获取当前会话的token信息参数
StpUtil.getTokenInfo();

// 获取当前会话剩余有效期(单位:s,返回-1代表永久有效)
StpUtil.getTokenTimeout();

更多用法

除了以上介绍的基础功能及简单用法,Sa-Token还提供了很多权限认证相关的能力,例如当需要在分布式环境中使用鉴权认证时,Sa-Token提供了集成Redis作为数据存储的方式,当遇到APP、小程序等不支持Cookie的终端,Sa-Token支持前后端分离的无Cookie鉴权模式,此外还有单点登录、同端互斥登录、账号封禁等能力。想要了解更多Sa-Token的相关使用方式,可访问Sa-Token官方文档:https://sa-token.cc/doc.html#/。

0条评论
0 / 1000
c****n
1文章数
0粉丝数
c****n
1 文章 | 0 粉丝
c****n
1文章数
0粉丝数
c****n
1 文章 | 0 粉丝
原创

轻量级权限认证框架Sa-Token介绍

2023-06-12 06:15:51
18
0

相比于其他常用的权限认证框架如Shiro、SpringSecurity等,Sa-Token是一个轻量级的权限认证框架,其使用方式简单,容易上手,更加适用于小型项目的研发。

常用功能

Sa-Token的常用功能主要有:

登录认证:单端登录、多端登录、同端互斥登录、七天内免登录

权限认证:权限认证、角色认证、会话二级认证

单点登录:内置三种单点登录模式:无论是否跨域、是否共享Redis,都可以搞定

OAuth2.0: 轻松搭建 OAuth2.0 服务,支持openid模式

微服务鉴权:适配Gateway、ShenYu、Zuul等常见网关的路由拦截认证

在SpringBoot环境中集成

依赖引入

Maven方式依赖引入

<dependency>
    <groupId>cn.dev33</groupId>
    <artifactId>sa-token-spring-boot-starter</artifactId>
    <version>1.34.0</version>
</dependency>

配置文件

Sa-Token可以零配置启动,如果你需要定制化需求,则可通过在配置文件(如application.yml)中添加如下配置实现

sa-token: 
    # token名称 (同时也是cookie名称)
    token-name: satoken
    # token有效期,单位s 默认30天, -1代表永不过期 
    timeout: 2592000
    # token临时有效期 (指定时间内无操作就视为token过期) 单位: 秒
    activity-timeout: -1
    # 是否允许同一账号并发登录 (为true时允许一起登录, 为false时新登录挤掉旧登录) 
    is-concurrent: true
    # 在多人登录同一账号时,是否共用一个token (为true时所有登录共用一个token, 为false时每次登录新建一个token) 
    is-share: true
    # token风格
    token-style: uuid
    # 是否输出操作日志 
    is-log: false

登录认证

登录接口Demo

    @RequestMapping("login")
    public SaResult doLogin(String name, String pwd) {
        //获取保存的用户信息
        User user = userDao.getByUserName(name);
        //与前端提交的用户信息比对
        if(user.getName().equals(name) && user.getPwd().equals(pwd)) {
            // 调用Sa-Token提供的方法登录,该方法利用本地缓存记录登录信息
            StpUtil.login(user.getId());
            return SaResult.ok("登录成功");
        }
        return SaResult.error("登录失败");
    }

此外,Sa-Token还提供了很多API能方便获取登录相关信息

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

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

// 检验当前会话是否已经登录, 如果未登录,则抛出异常:`NotLoginException`
StpUtil.checkLogin();

// 获取当前会话的token信息参数
StpUtil.getTokenInfo();

// 获取当前会话剩余有效期(单位:s,返回-1代表永久有效)
StpUtil.getTokenTimeout();

更多用法

除了以上介绍的基础功能及简单用法,Sa-Token还提供了很多权限认证相关的能力,例如当需要在分布式环境中使用鉴权认证时,Sa-Token提供了集成Redis作为数据存储的方式,当遇到APP、小程序等不支持Cookie的终端,Sa-Token支持前后端分离的无Cookie鉴权模式,此外还有单点登录、同端互斥登录、账号封禁等能力。想要了解更多Sa-Token的相关使用方式,可访问Sa-Token官方文档:https://sa-token.cc/doc.html#/。

文章来自个人专栏
文章 | 订阅
0条评论
0 / 1000
请输入你的评论
0
0