JWT字段详解

1. 完整JWT格式

{
	 alg: "RS256",
	 typ: "JWT",
	 kid: "bael-key-id"
}.
{
	 loginType: "PWD",
	 user_name: "admin",
	 scope: [
	  "read"
	 ],
	 tenantCode: "gitee",
	 exp: 1594108986,
	 authorities: [
	  "ROLE_ADMIN"
	 ],
	 jti: "bd805e23-e8b6-4ac6-88de-0a4fc2e9b1f0",
	 client_id: "web_app"
}.
[signature]

完整JWT包括三部分:Header - 头部 、Payload - 负载 、Signature(签名)

2. 字段解析

header字段
KID(可选): 代表秘钥序号。开发人员可以用它标识认证token的某一秘钥

payload字段
scope:可选。表示授权范围。 参考链接
jti: 唯一标识jwt,将其放入黑名单,避免攻击者重复访问,从而可以帮助防止攻击者发送相同JWT以发出请求的replay attacks
重放攻击(Replay Attacks)又称重播攻击、回放攻击或新鲜性攻击(Freshness Attacks),是指攻击者发送一个目的主机已接收过的包,来达到欺骗系统的目的,主要用于身份认证过程,破坏认证的正确性。 jti是被放到JWT中的唯一的ID,可以防止重放攻击。

你可能感兴趣的:(spring,security)