在需要权限控制的按钮上,使用 js 进行逻辑判断,例如在Vue框架中我们可以使用如下写法: 复制代码<button v-if="arr.indexOf('user.delete') > -1">删除按钮</button> 其中:arr是当前用户拥有的权限码数组,user.delete是显示按钮需要拥有的权限码,删除按钮是用户拥有权限码才可以看到的内容。 注意:以上写
使用@SaCheckPermission("user:update")注解,声明该接口需要权限user:update。 6. 角色验证 如果需要基于角色进行权限控制,可以使用@SaCheckRole注解。 importcn.dev33.satoken.annotation.SaCheckRole;importorg.springframework.web.bind.annotation.*;@RestController@RequestMapping("/admin")publicclassAdminController{/...
最终,我找到了一个目前我认为最完美的技术:Sa-Token。当今国内企业,大部分项目都是前后端分离的,Sa-Token美中不足的地方在于,它的官方文档对前后端不分离的部分讲述的很清楚,对我们真正要经常用到前后端分离的使用讲述的却过于简略。这篇文档,我将从头到尾讲解如何使用Sa-Token做前后端分离的Spring Boot项目。
步骤5 StpUtil.login(userReal.getId())的秘密 我们如果不使用sa-token,怎么做登录功能呢? 是不是需要在传参的时候加一个HttpServletRequest,然后再用getSession方法获取session,把登录用户的信息放到session中? 而现在,只需要一句StpUtil.login(userReal.getId())就维持了登录状态,想也知道sa-token框架肯定也是把登录...
其中,token-name是指定 Token 的名称,默认为Sa-Token-Auth。timeout是指定 Token 过期时间,单位是秒,默认为 30 分钟。cache-type是指定 Token 的缓存方式,默认为 Memory 缓存。redis.host、redis.port和redis.password是指定Redis的相关信息。如果使用的是 Memory 缓存,则不需要对 Redis 相关配置进行配置。
博主在本文中介绍了如何使用Spring Gateway和Sa-Token实现无感鉴权的方案。他首先提到了Spring Cloud Gateway和Sa-Token的基本概念和功能。然后,博主指出了直接在网关中实现鉴权的局限性,并提出了一种无感鉴权的解决方案。在这个方案中,博主通过在请求中注入用户ID的方式实现了无感鉴权,从而避免了下游微服务依赖Sa-Token的...
sa-token使用(源码解析 + 万字)一 步骤1 什么是sa-token 我是偶然间在知乎发现了这个框架,是国人写的,还不错,就用了。 官网:https://sa-token.dev33.cn Sa-Token 是一个轻量级 Java 权限认证框架,主要解决:登录认证、权限认证、Session会话、单点登录、OAuth2.0、微服务网关鉴权 等一系列权限相关问题。
Sa-Token默认使用内存来存储Token信息,在分布式环境中,可以使用Redis作为持久化介质。 引入Redis依赖: <dependency> <groupId>cn.dev33</groupId> <artifactId>sa-token-dao-redis</artifactId> <version>1.34.0</version> </dependency> 配置Redis持久化: ...
注:如果你使用的是SpringBoot 3.x,只需要将sa-token-spring-boot-starter修改为sa-token-spring-boot3-starter即可。 二、在 Sa-Token 中实现记住我功能 Sa-Token的登录授权,默认就是[记住我]模式,为了实现[非记住我]模式,你需要在登录时如下设置:
spring:# redis配置redis:# Redis数据库索引(默认为0)database: 0# Redis服务器地址host: 127.0.0.1# Redis服务器连接端口port: 6379# Redis服务器连接密码(默认为空)# password:# 连接超时时间timeout: 10slettuce:pool:# 连接池最大连接数max-active: 200# 连接池最大阻塞等待时间(使用负值表示没有限制)max...