没有合适的资源?快使用搜索试试~ 我知道了~
springboot+jwt实现token登陆权限认证的实现
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
5星 · 超过95%的资源 22 下载量 147 浏览量
2020-08-19
02:56:21
上传
评论
收藏 80KB PDF 举报
温馨提示
试读
4页
主要介绍了springboot+jwt实现token登陆权限认证的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
资源推荐
资源详情
资源评论
springboot+jwt实现实现token登陆权限认证的实现登陆权限认证的实现
主要介绍了springboot+jwt实现token登陆权限认证的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需
要的朋友们下面随着小编来一起学习学习吧
一一 前言前言
此篇文章的内容也是学习不久,终于到周末有时间码一篇文章分享知识追寻者的粉丝们,学完本篇文章,读者将对token类的登陆认证流程有个全面的了解,可以动态搭
建自己的登陆认证过程;对小项目而已是个轻量级的认证机制,符合开发需求;
二二 jwt实现登陆认证流程实现登陆认证流程
用户使用账号和面发出post请求
服务器接受到请求后使用私钥创建一个jwt,这边会生成token
服务器返回这个jwt给浏览器
浏览器需要将带有token的jwt放入请求头
每次手到客户端请求,服务器验证该jwt的token
验证成功返回响应的资源给浏览器。否则异常处理
三三 相关介绍相关介绍jwt
3.1jwt 组成组成
JWT的token由三段信息构成的,将这三段信息文本用.连接一起就构成了JWT字符串;
Header 头部(包含了令牌的元数据,并且包含签名和或加密算法的类型)
Payload 负载
Signature 签名/签证
eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE1ODI4OTc4NDUsInVzZXJuYW1lIjoienN6eHoifQ.vyiExkFWCCmQA3PFYL0jJfIiYGWubngqB0WcgmtHOxg
3.2 jwt优点优点
简洁(Compact): 可以通过URL,POST参数或者在HTTP header发送,数据量小,传输速度快
自包含(Self-contained):负载中包含了所有用户所需要的信息,避免多次查询数据库
.因为Token是以JSON加密的形式保存在客户端的,所以JWT是跨语言支持;
不需要在服务端保存会话信息,适用于分布式与微服务;
四四 jwt用户登陆发放用户登陆发放token
4.1 pom.xml
项目构件如下
springboot 2.1;
jwt 3.4.0;
maven 3.5
jdk1.8
postman接口测试
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>com.auth0</groupId>
<artifactId>java-jwt</artifactId>
<version>3.4.0</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
</dependencies>
4.2jwt工具类工具类
jwt工具类中有三个方法,分别是生成数字签名用于用户首次登陆时发送jwt给客户端;其次是校验方法,用于拦截器拦截所有规则内的url,每个请求都必须带有服务器发
送的jwt,经过验证后才放行请求;最后一个获得用户名的方法用于查询密钥,在验证jwt时作为参数传入;
/* *
* @Author lsc
* <p> JWT工具类 </p>
* @Param
* @Return
*/
public class JwtUtil {
// Token过期时间30分钟
public static final long EXPIRE_TIME = 30 * 60 * 1000;
/* *
* @Author lsc
* <p> 校验token是否正确 </p>
* @Param token
* @Param username
* @Param secret
* @Return boolean
*/
public static boolean verify(String token, String username, String secret) {
try {
// 设置加密算法
Algorithm algorithm = Algorithm.HMAC256(secret);
JWTVerifier verifier = JWT.require(algorithm)
.withClaim("username", username)
.build();
// 效验TOKEN
DecodedJWT jwt = verifier.verify(token);
资源评论
- lxcflyer2023-03-30感谢大佬分享的资源,对我启发很大,给了我新的灵感。
- m0_749068962023-05-19资源内容总结地很全面,值得借鉴,对我来说很有用,解决了我的燃眉之急。
- water-之2022-11-03终于找到了超赞的宝藏资源,果断冲冲冲,支持!
weixin_38558246
- 粉丝: 5
- 资源: 956
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功