Token实现规范

目标

为RESTful架构的系统交互规定token的约定及提供一些建议。

技术

[约定] token的生成使用jwt 0.7.0 。以下为maven依赖示例。

1
2
3
4
5
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt</artifactId>
<version>0.7.0</version>
</dependency>

[约定] token的生成算法使用HS512。

[约定] claim段中的key使用小写,最多不能超过5个字符。

[建议] claim段中的常用key名建议。

key 含义
sub 用户名
crt 生成时间
role 角色
auth 权限

[建议] token的过期时间应大于12小时。

[建议] token的最大长度应小于 2 KB,因为tomcat的默认maxHttpHeaderSize是 4 KB。

[约定] 前端在向后端传递token时,应将token放入head的Authorization中,并以Bearer开头。以下为示例。

Authorization: Bearer QWxhZGRpbjpvcGVuIHNlc2FtZQ==

[建议] 前端在获取token后应自行保存在Local/session storage或session中,不要频繁请求token。

源码示例

请参看实现案例。VSTS路径:$/BI/SourceCode/CDR_3.0/master/src/cdrcapi/src/main/java/com/winning/cdrcapi/security/