当前位置: 首页 > 网络应用技术

JWT的参赛介绍

时间:2023-03-05 21:18:31 网络应用技术

  文章首先发表在个人博客中:JWT的Javalover.cc(Javalover.cc)

  JWT的全名本质上是一个令牌,例如以下示例:

  您会看到令牌中有两个符号。为了可视化效果,显示了分支。实际使用是一个显示;

  JWT由三个部分组成:标题(头),有效载荷(负载),签名(签名)

  我们在前言中看到的缝线字符串实际上是编码的JWT :(将在下面介绍特定的编码过程)

  那么编码之前的JWT是什么样的?

  让我们在编码之前介绍JWT的组件;

  标题头:

  头部信息是内部的一个,主要由令牌的类型和签名算法组成;

  例如,以下标头示例:

  在

  有效负载负载:

  负载,内部也是JSON对象,主要包括用户自定义和官方预定义相关字段的相关字段;

  例如,有效负载示例以下:

  在:

  有一个细节:

  JWT中的所有正式定义的字段均为三位数,例如在标题中,有效载荷;

  目的是确保JWT的紧凑性保存传输带宽

  Siganatucatual Signature:

  签名是要加密签名,并将配对和有效载荷在上述标题上方加密;

  将使用钥匙,钥匙从后端保持,前端不明智。

  假设上面提到了签名算法,则签名代码如下:

  可以看出,在此处的签名之前,标题和有效负载内容将由Base64UrlenCode编码;

  BASE64URL编码:类似于Base64编码,但根据Base64,将其转换为空字符,将其转换为

  转换过程如下:

  要转换URL转换的原因是因为这些特殊字符在URL中具有特殊的含义。例如,参数的键值;

  以及令牌有时直接在URL中使用它(尽管不建议这样做,因为它不安全)

  以下是验证令牌的示例:使用JS中的库;

  授权访问是通过JWT执行的,因此不必担心CSRF攻击(跨站点请求伪造的交叉站点伪造请求),因为我们不存在Cookie中;

  有关通过cookie攻击CSRF攻击的信息,您可以参考:前端安全系列(2):如何防止CSRF攻击?-Meituan技术团队(Meituan.com)

  优势:

  缺点:

  本文介绍了JWT的基本信息,包括结构组成,使用方法以及优势和缺点;