登录校验-会话技术/JWT令牌

本文介绍了HTTP协议的无状态特性以及会话跟踪的重要性。对比了Cookie和Session的优缺点,重点讲解了令牌技术,特别是JWT(JsonWebToken),包括其组成(Header,Payload,Signature)和使用方法。还提到了JWT在处理跨域、服务器集群和安全性方面的能力,并提供了JWT令牌的生成与校验代码示例。最后,针对可能出现的错误,建议了添加JAXB依赖的解决方案。
摘要由CSDN通过智能技术生成

登录校验

  1. 会话技术
    会话:
    用户打开浏览器,访问web资源的时候,会话建立。直到一方断开连接,会话结束,一次会话中包含多次响应

    会话跟踪:一种维护浏览器状态的方法,服务器需要识别多次请求是否来自同一浏览器,以便在多次会话中的多次数据共享
    会跟踪方案:
    客户端会话跟踪技术:Cookie
    服务端会话跟踪技术:Session
    令牌技术(主流技术)

浏览器与服务器交互使用的http协议,它是无状态的,即每条请求都是独立的,下一次请求不会携带上一次的数据
2.会话跟踪方案的对比

1.cookie

在这里插入图片描述
优点:http中协议支持的技术
缺点:1.移动端App无法使用cookie2.数据保存在客户端,不安全,用户可以在自己电脑禁用cookie 3.cookie不能实现跨域
跨域分为三个维度:协议、ip/域名、端口,有一者不同,则为跨域

2.session

在这里插入图片描述
优点:存储在服务器,安全性高
缺点:服务器集群环境下无法直接使用。Cookie的缺点
在这里插入图片描述

3.令牌技术

优点:
1.支持pc、移动端、小程序
2.解决集群服务器环境下的认证
3.减轻服务器存储的压力

缺点:
需要自己实现

jwt令牌(Json Web Token)

jwt官网
jwt:
定义了一种简介(即字符串)、自包含(即自定义)的格式,用于在通信双方以json数据格式的安全传输信息。这些信息是可靠的

jwt令牌的组成:
1.Header(头):记录令牌类型和签名算法。如:{“alg”:“HS256”,“type”:“JWT”}
2.Payload(有效载荷):携带一些自定义的信息 例如{“id”:“1”,“username”:“tom”}
3.Signature(签名):防止Token被篡改,确保安全性。将header、payload、并加入指定密钥,通过指定签名算法来计算

在这里插入图片描述
#主要用于登录认证

Jtw令牌的使用

  1. 导入jtw依赖
<denpendency>
  <groupId>io.jsonwebtoken</groupId>
	<artifactId>jjwt</artifactId>
	<version>0.9.1</version>
</dependency>

2.生成jwt令牌
在这里插入图片描述3.校验jwt令牌
在这里插入图片描述

//parseClaimsJwt(jwt),不需要解析签名
//parse(jwt),需要解析签名
 public static Claims parseJWT(String jwt)
{
Claims claims=Jwts.parser().setSigningKey(signkey).parseClaimsJwt(jwt).getBody();

Claims claims = (Claims) Jwts.parser().setSigningKey(signkey).parse(jwt).getBody();
  return claims;
}

错误解析

java.lang.ClassNotFoundException: javax.xml.bind.DatatypeConverter
//按照以上步骤,如果还是报错的话,如果您的项目使用了 Maven 或 Gradle 等构建工具,请确保您的项目依赖项中包含了适用于 Java 9+ 的 JAXB 实现。在 Maven 中,您可以在 pom.xml 文件中添加以下依赖项:
<dependency>-->
         <groupId>javax.xml.bind</groupId>-->
          <artifactId>jaxb-api</artifactId>-->
          <version>2.3.1</version>-->
</dependency>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值