Json web token

Json web token:

  • 概念:
    JWT是json web token缩写。可以使⽤在RESTFUL接⼝定义,也可以使⽤在普通的web。它将⽤户信息加密到token⾥,服务器不保存任何⽤户信息。服务器通过使⽤保存的密钥验证token的正确性,只要正确即通过验证。
  • 组成:
    JWT包含三个部分: Header头部,Payload负载和Signature签名。由三部分⽣成token,三部分之间⽤“.”号做分割。 列如 :

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.Sf

  1. Header(头) 作用:记录令牌类型、签名算法等 例如:{“alg":“HS256”,“type”,"JWT}。
  2. Payload(有效载荷)作用:携带一些用户信息 例如{“userId”:“1”,“username”:“sungan”}
  3. Signature(签名)作用:是一个计算出来的签名字符串,防止 Token被篡改、确保安全性 例如 使⽤的是HMACSHA256算法,⼤致流程类似于: HMACSHA256( base64UrlEncode(header) + “.” + base64UrlEncode(payload), secret)这个signature字段被⽤来确认JWT信息的发送者是谁,并保证信息没有被修改 。
  • 验证流程:
  1. 在头部信息中声明加密算法和常量,然后把header使⽤json转化为字符串
  2. 在载荷中声明⽤户信息,同时还有⼀些其他的内容,再次使⽤json把在和部分进⾏转化,转化为字符串
  3. 使⽤在header中声明的加密算法来进⾏加密,把第⼀部分字符串和第⼆部分的字符串结合和每个项⽬随机⽣成的secret字符串进⾏加密,⽣成新的字符串,此字符串是独⼀⽆⼆的。
  4. 解密的时候,只要客户端带着jwt来发起请求,服务端就直接使⽤secret进⾏解密,解签证解出第⼀部分和第⼆部分,然后⽐对第⼆部分的信息和客户端穿过来的信息是否⼀致。如果⼀致验证成功,否则验证失败。
  • 特点:
    三部分组成,每⼀部分都进⾏字符串的转化
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值