在微服务系统中有多种方案来保持用户的状态及安全认证,比如session方案,token方案,本文讨论比较主流的JWT方案的使用示例。
基本的设计方案如下:

JWT字符串由3部分组成,分别是Header、Payload和Signature,由两个句点符合分割,可以到https://jwt.io网站上进行在线解析。字符串样例如下:
eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJleHAiOjE2Nzc5MDc1NjYsInVzZXJJZCI6IjU0MDg2NTM3LTdlYjItNGUyMC1hMWUxLTJlNjc4NGUxNDEyNSIsImVtYWlsIjoidGVzdEBmcmVlY29kZS5jb20ifQ.htjMGp8KBpuarxjCEHNle33btu6jEKqGTfL1YRX9xnmd669NExZDhaUO--8Uv22h4sQQT3jjrBc4p_YOWhfK3Q
这里生成JWT的库主要使用java-jwt,其pom文件引用如下:
<dependency>
<groupId>com.auth0</groupId>
<artifactId>java-jwt</artifactId>
<version>3.6.0</version>
</dependency>
使用HMAC512算法,定义了一个名为userId的Claim,同时根据参数duration来设置过期时间,生成token的代码如下:
使用JWT进行微服务安全认证的实践

最低0.47元/天 解锁文章
604

被折叠的 条评论
为什么被折叠?



