网站首页 > 精选教程 正文
经过上次的简单集成和接口调用,我已经体验到了一点Sa-Token的简单易用,今天就来接着体验该框架更多功能,没看过的小伙伴可以看上篇文章。关于这个框架的体验使用,我打算做成一个完整的系列。文笔有限,编码水平有限,凑合看吧。
经过简单集成,我们现在已经可以通过接口访问观察到登陆状态。当然框架给出的其他API我们也是要体验一下的。
在Controller中添加如下接口,检测登陆状态
// 检查登录状态,浏览器访问: http://localhost:9999/user/checkLogin
@RequestMapping("checkLogin")
public String checkLogin() {
// 检验当前会话是否已经登录, 如果未登录,则抛出异常:`NotLoginException`
StpUtil.checkLogin();
return "访问成功";
}
在未登录状态下访问接口
可以看出,在检查后,如果未登录,会抛出NotLoginException异常,利用这个我们在做全局异常捕捉处理的时候就可以很方便的统一处理。
登录之后再次访问
在Controller中添加退出登录接口。
// 查询登录状态,浏览器访问: http://localhost:9999/user/logout
@RequestMapping("logout")
public String logout() {
StpUtil.logout();
return "退出登录:";
}
重启项目,先执行登录,再访问退出登录接口
检查登录状态
已经成功退出登录。至此基本的登陆退出检查登录状态就都体验完了,确实非常简单。当我们在浏览器查看Cookie就会发现,这些接口访问还是借助了Cookie完成状态的记录。我们开发的项目现在基本以前后端分离为主(最起码我开发的项目是这样的),而小程序或者APP上是不存在Cookie的,那么就试试无Cookie模式下的接口访问,用PostMan完成。
为了保证我们不通过Cookie认证,我们可以配置框架是否从Cookie读取Token。我关掉了从Cookie和请求体读取token,毕竟一般我们的token还是会放在header里。
sa-token:
# 是否从Cookie读取Token
is-read-cookie: false
# 是否从请求体读取token
is-read-body: false
# 是否从请求头读取token
is-read-head: true
# token和Cookie名称
token-name: token
重启项目后,再次在浏览器执行登陆接口以后,检查登录状态
现在已经无法从Cookie认证了,稍微改造下登录接口,登录成功后返回token
// 测试登录,浏览器访问: http://localhost:9999/user/doLogin?username=zhang&password=123456
@RequestMapping("doLogin")
public String doLogin(String username, String password) {
// 此处仅作模拟示例,真实项目需要从数据库中查询数据进行比对
if("zhang".equals(username) && "123456".equals(password)) {
StpUtil.login(10001);
return "登录成功 "+StpUtil.getTokenName()+":"+StpUtil.getTokenValue();
}
return "登录失败";
}
在PostMan中执行接口
再把返回来的token放到接口的header里访问检查登录状态接口
这样就可以满足前后端分离项目的使用了。
后续我会继续体验这个项目,有兴趣了解这个项目的请自行查看。
文档地址:http://sa-token.dev33.cn/
项目地址:https://gitee.com/dromara/sa-token
- 上一篇: 轻量级 Java 权限认证框架Sa-Token初体验(五)
- 下一篇: 权限管理框架shiro
猜你喜欢
- 2024-11-26 关于大后台的权限管理设计
- 2024-11-26 基于Springboot的权限管理系统
- 2024-11-26 Sa-Token,让你的权限认证更简单
- 2024-11-26 Sa-Token之注解鉴权:优雅的将鉴权与业务代码分离
- 2024-11-26 Shiro 权限校验分析
- 2024-11-26 给女朋友讲某宝是如何设计用户权限管理的(一)
- 2024-11-26 基于SpringBoot 的MCMS系统,完全开源,直接商用太爽了
- 2024-11-26 再见前端!纯 Java 撸个后台管理系统,这框架用起来贼爽
- 2024-11-26 AOP编程_Android优雅权限框架(2)Demo完全解析
- 2024-11-26 6个顶级SpringCloud微服务开源项目,企业开发必备
你 发表评论:
欢迎- 04-11Java面试“字符串三兄弟”String、StringBuilder、StringBuffer
- 04-11Java中你知道几种从字符串中找指定的字符的数量
- 04-11探秘Java面试中问的最多的String、StringBuffer、StringBuilder
- 04-11Python字符串详解与示例(python字符串的常见操作)
- 04-11java正则-取出指定字符串之间的内容
- 04-11String s1 = new String("abc");这句话创建了几个字符串对象?
- 04-11java判断字符串中是否包含某个字符
- 04-11关于java开发中正确的发牌逻辑编写规范
- 最近发表
-
- Java面试“字符串三兄弟”String、StringBuilder、StringBuffer
- Java中你知道几种从字符串中找指定的字符的数量
- 探秘Java面试中问的最多的String、StringBuffer、StringBuilder
- Python字符串详解与示例(python字符串的常见操作)
- java正则-取出指定字符串之间的内容
- String s1 = new String("abc");这句话创建了几个字符串对象?
- java判断字符串中是否包含某个字符
- 关于java开发中正确的发牌逻辑编写规范
- windows、linux如何后台运行jar(并且显示进程名)
- 腾讯大佬私人收藏,GitHub上最受欢迎的100个JAVA库,值得学习
- 标签列表
-
- nginx反向代理 (57)
- nginx日志 (56)
- nginx限制ip访问 (62)
- mac安装nginx (55)
- java和mysql (59)
- java中final (62)
- win10安装java (72)
- java启动参数 (64)
- java链表反转 (64)
- 字符串反转java (72)
- java逻辑运算符 (59)
- java 请求url (65)
- java信号量 (57)
- java定义枚举 (59)
- java字符串压缩 (56)
- java中的反射 (59)
- java 三维数组 (55)
- java插入排序 (68)
- java线程的状态 (62)
- java异步调用 (55)
- java中的异常处理 (62)
- java锁机制 (54)
- java静态内部类 (55)
- java怎么添加图片 (60)
- java 权限框架 (55)
本文暂时没有评论,来添加一个吧(●'◡'●)