JWT数据结构
headerpayloadsignature
作用:用户身份验证和数据信息交换 JWT数据结构
JWT的数据结构是:A.B.C,有英文字符点.来分割三部分数据
A - header 头信息B -payload 有效荷载C- signature 签名 header
数据结构:{“alg”:“加密算法名称”,“typ”:“JWT”}
alg是加密算法名称,如HMACSHA256、RSA
typ是token类型,这里固定为JWT
在payload数据块中一般记录实体(通常为用户信息)或其他数据的,主要分为三个部分,分别是:已注册信息(registered claims),公开数据(public claims),私有数据(private claims)
payload常用信息有:iss(发行者),sub(主题),aud(受众)等。这是都是已注册信息
公开数据部分一般都是JWT注册表中增加定义,避免和已注册的冲突。
公开数据和私有数据可以由程序员任意定义。
签名信息是由开发者提供的信息,是服务器验证的传递的数据是否是有效的安全的标准,在生成JWT最终数据之前,先使用header中定义的加密算法,将header和payload进行加密,并使用点进行拼接,再使用相同的加密算法,对加密后的数据和签名信息进行加密,得到最终签名结果。