初识JWT

JWT全称JSON Web Token是一种新的身份认证技术,也是一种信息交换技术。

JWT的原理是,在服务器在进行完认证会生成一个JWT token 并且返回给客户端。以后客户端每次的请求都加上这个token,客服端每次请求加上这个token服务器就可以通过算法解析token里内容拿到客户端端的认证信息。由于这个token只保存在客户端,并未在服务器端保存,所以是无状态的,方便扩展。

JWT有以下三个部分组成:

  • Header
  • Payload
  • Signature

因此JWT最终的结果是xxxxx.yyyyy.zzzzz这样格式的字符串。

Header

header主要包含了2部分内容,签名所用的算法和token类型。支持的签名算法有HMAC、SHA256、 RSA等。token类型为JWT

{
    "alg":"sha256",
    "type":"JWT"
}

将这部分内容进行Base64编码,便是JWT的第一部分内容。

Payload

payload是JWT的有效负载,payload有三部分数据,第一部分数据是预定义字段有iss(签发人)、sub(主题)、adu(受众)、exp(过期时间)、nbf(生效时间)、iat(签发时间)、jti(JWT ID)总共7个。第二部分是公开字段在IANA JSON Web Token Registry有注册。第三部分是私有的字段不能和必须声明字段和公开注册字段冲突即可,下面是payload的一个demo

{
  "sub": "1234567890",
  "name": "John Doe",
  "admin": true
}

这部分内容也是要进行Base64编码的,编码后的字符串是JWT的第二部分。

Signature

signature通过使用header里声明的签名算法,由服务器提供一个secret对已经Base64编码后的header和payload进行签名得到的。

signature=sha256(header + '.' + payload, secret);

最终返回给客户端的内容就是下面这样格式的字符串

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.
eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.
TJVA95OrM7E2cBab30RMHrHDcEfxjoYZgeFONFh7HgQ

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值