JWT令牌

JWT(JSON Web Token)是一种开放标准,用于在各方之间安全地传递信息。其内容经过数字签名,确保数据完整性和安全性。JWT令牌包含三个部分:头部、负载和签名,用于资源服务的无状态认证。优点包括基于JSON易于解析、内容可扩展且安全性高;缺点则是令牌长度可能较长,占用存储空间。JWT令牌广泛应用于身份验证和授权场景。
摘要由CSDN通过智能技术生成
  • 摘要:令牌采用JWT格式,用户认证通过时会得到一个JWT令牌,JWT令牌中已经包括了用户相关的信息,客户端只需要携带JWT访问资源服务,资源服务会根据事先约定的算法自行完成令牌校验,从而获取用户信息。

一 什么是 JWT?

JSON Web Token(JWT)是一个开放的token行业标准。它定义了一个简单的、自包含协议的格式数据,用于在通信双方传递json对象,传递的信息经过数字签名可以被验证和信任。
JWT可以使用HMAC算法或使用RSA的(公钥/私钥)对来签名,防止token被篡改。

二 JWT令牌的优点

  • JWT基于json,非常方便解析。
  • 可以在令牌中自定义丰富的内容,易扩展。
  • 通过非对称加密算法及数字签名技术,JWT防止篡改,安全性高。
  • 资源服务使用JWT可不依赖认证服务器即可完成授权。

三 JWT令牌的缺点

  • JWT令牌生成token的长度会根据json内容多少而变化,json内容越丰富则JWT令牌则越长,占用存储空间则越大。

四 JWT令牌的结构

JWT令牌由三部分组成,每部分中间使用点“.”分隔,不如:xxxxx.yyyyy.zzzzz

  1. 第一部分:Header
    即头部包括令牌的类型(JWT)及使用的哈希算法(如:HMACSHA256、RSA)。
{
	“alg”:“HS256”,
	“typ”:“JWT”
}

将上边的内容使用Base64Url编码,得到一个字符串就是JWT令牌的第一部分。

  1. 第二部分:payload
    第二部分是负载,内容也是一个json对象,它是存放有效信息的地方,它可以存放JWT提供的现成字段,比如:iss(签发者),exp(过期时间戳),sub(面向的用户)等,也可自定义字段。
    此部分不建议存放敏感信息,因为此部分可以解码还原内容。
{
	“username”:“kongc”,
	“password”:“123456”,
	“role”:“admin”
}

将上边的内容使用Base64Url编码,得到一个字符串就是JWT令牌的第二部分。

  1. 第三部分:Signature
    指的是签名,此部分用于防止JWT内容被篡改。
    这个部分使用Base64Url将前两部分进行编码,编码后使用点“.”连接组成字符串,最后使用Header中声明的签名算法进行签名。
HMACSHA256(
	base64UrlEncode(header)+ “.” +  
	base64UrlEncode(payload),
	secret
)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

kong7828675

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值