Token的三要素

一、定义Token

token分为三部分来定义:

1 .表头:Header是一个json对象,存储元数据

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

alg:是签名的算法名称(algorithm),默认是HMAC SHA);

type属性表示这个令牌(token)的类型(type),JWT令牌统一写成JWT。

2.负载:Payload是一个json对象。存放传递的数据,数据分为Public和Private。

Public是JWT中规定的一些字段,可以自己选择使用。


iss(issuer):签发人

exp(expiration time):过期时间

sub(subject):该JWT所面向的用户

aud(audience):受众,接受该JWT的一方

nbf(not before):生效时间

iat(Issued At):签发时间

jti(JWT ID):编号
Privote是自己定义的字段

{

“role":经理,
"name":张凡,
"id":23455
}

Play默认是没有加密的,以上数据都是明文传输的,所以最好不要存放敏感数据。

【注】前两部分数据都是json对象使用的是base64URL编码,翻译为字符串。

3.Signature:签名。签名是对Header和Payload两部分的签名,目的是为了防止数据被篡改

HMACSHA256(
    base64UrlEncoder(header)+"."+
    base64UrlENcode(paylosd),
    secret)

签名算法:先指定一个secret密匙,把base64URL的header,base64RL的payload和secret秘匙 使用HNAC SHA256生成签名字符串。

最后把三个部分的拼成一个字符串,每个部分之间用点(.)分隔,就可以返回给用户

如:

eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VybmFtZSI6IlRvbSIsInJvbGUiOiJhZG1pbiIsInN1YiI6ImFkbWluLXRlc3QiLCJleHAiOjE2NTA1Mzg4NzYsImp0aSI6IjUzOGZkMGZhLWE3NjMtNGVjNS05YTkzLWZmZjhmYzljODg1OCJ9.dPXPSz0OBW82BS_vRKawObzKKT8a0wJg4kn6Fc5wlYA

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值