jwt介绍

适用场景

前后端分离时,登陆后,用户标识保存到客户端,后续请求时,带着用户标识,以此来区分是否登录。用户标识可以是用户id、也可以包含其他字段,通常还得加密或者加签名,提交到服务器端时还要验证签名,这块信息没有约定格式,jwt就是一个格式,它规定了签名、加密、内容等等。

简介

jwt=json web token,由三部分组成header、payload、sign,这三部分用点号分隔header.payload.sign。

header

header表示加密算法;

{
  "alg": "HS256",
  "typ": "JWT"
}

之后,将header做base64处理;

payload

payload就是内容,payload也叫claim,有三种类型,一种是registered claim、public claim、private claim,推荐使用registered

  • registered,就是比较通用的数据项,含有iss (issuer), exp (expiration time), sub (subject), aud (audience), and others,为什么calim名称都是3个字母?这是为了减小大小;此种,推荐使用但不是强制的。
  • public,就是好多名字已经注册到jwt registry,比如这个链接,里边包含所有已经注册的名字,还有
  • private就是自己定义的。

然后将payload做base64处理;

Signature

最后一部分是Signature,签名可以防止数据被篡改,也可以用来证明发送者身份,就是将header、payload、secret做个签名。比如使用了HMACSHA256算法,则签名等于

HMACSHA256(
  base64UrlEncode(header) + "." +
  base64UrlEncode(payload),
  secret)

最终效果可以通过在线尝试
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值