JWT(JSON Web Token)的数据结构

JWT 的数据结构是 : A.B.C
A - header 头信息
B - payload (有效荷载,用于记录用户非隐私数据)
C - Signature 签名

1、header

数据结构: {“alg”: “加密算法名称”, “typ” : “JWT”}
alg 是加密算法定义内容,如: HMAC SHA256 或 RSA
typ 是 token 类型,这里固定为 JWT。

2、payload

在 payload 数据块中一般用于记录实体(通常为用户信息)或其他数据的。主要分为三部分,分别是:已注册信息(registered claims),公开数据(public claims),私有数据(private claims)。
常用的已注册信息: iss(发行者), exp(到期时间), sub(主题), aud(受众)
公开数据一般都会在 JWT 注册表中增加定义,避免和已注册信息冲突。
公开数据和私有数据均可由程序员任意定义。
注意: 即使 JWT 有签名加密机制, 但是 payload 内容都是明文记录, 除非记录的是加密数据, 否则不排除泄露隐私数据的可能。 不推荐在 payload 中记录任何敏感数据。

3、Signature

签名信息。 这是一个由开发者提供的信息。 是服务器验证的传递的数据是否有效安全的标准。 在生成 JWT 最终数据的之前,先使用 header 中定义的加密算法将 header 和 payload 进行加密, 并使用点进行连接。 如: 加密后的 header .加密后的 payload。 再使用相同的加密算法, 对加密后的数据和签名信息进行加密, 得到最终结果。

4、JWT执行流程

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值