Java教程

JWT消息构成

本文主要是介绍JWT消息构成,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

一个token分3部分,按顺序:

  • 头部(header)
  • 载荷(payload)
  • 签证(signature)

头部

  • 声明类型,这里是jwt
  • 声明加密的算法 通常直接使用 HMAC SHA256

载荷

Payload 部分也是一个 JSON 对象,用来存放实际需要传递的数据。JWT 规定了7个官方字段,供选用。

  • iss (issuer):签发人
  • exp (expiration time):过期时间
  • sub (subject):主题
  • aud (audience):受众
  • nbf (Not Before):生效时间
  • iat (Issued At):签发时间
  • jti (JWT ID):编号

除以上默认字段外,我们还可以自定义私有字段,如下例:

{ 
"sub": "1234567890", 
"name": "chongchong", 
"admin": true
 }

注意,JWT 默认是不加密的,任何人都可以读到,所以不要把秘密信息放在这个部分。

签名

Signature 部分是对前两部分的签名,防止数据篡改。 首先,需要指定一个密钥(secret)。这个密钥只有服务器才知道,不能泄露给用户。然后,使用 Header 里面指定的签名算法(默认是 HMAC SHA256)

算出签名以后,把 Header、Payload、Signature 三个部分拼成一个字符串,每个部分之间用"点"(.)分隔,就构成整个JWT对象TOKEN, 就可以返回给用户。

这篇关于JWT消息构成的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!