JWT 里只有以下几个部分是必须的: header 部分的 type,且值只能是 jwt; header 部分的 alg; payload 部分,有就行,甚至可以什么字段都不存; secret 部分。 除此之外,没什么是必须的。 但最佳实践一般是 access_token 设置时效短一些,额外提供 refresh_token 供客户端主动调取续约。这样做有两个好处: 一是 access_token 时效短,这样即使被人窃取在短时间内造成的损失也小; 二是因为 access_token 时效短带来的负面问题,就是总不能用户用着用着突然咔嚓被踢出去了让他重新登录吧?这个时候如果有 refresh_token 用户就可以无感知的自动续约了。
JWT 里只有以下几个部分是必须的:
header
部分的type
,且值只能是 jwt;header
部分的alg
;payload
部分,有就行,甚至可以什么字段都不存;secret
部分。除此之外,没什么是必须的。
但最佳实践一般是 access_token 设置时效短一些,额外提供 refresh_token 供客户端主动调取续约。这样做有两个好处:
一是 access_token 时效短,这样即使被人窃取在短时间内造成的损失也小;
二是因为 access_token 时效短带来的负面问题,就是总不能用户用着用着突然咔嚓被踢出去了让他重新登录吧?这个时候如果有 refresh_token 用户就可以无感知的自动续约了。