主要内容
- JWT (Json Web Tokens)
- Shiro + JWT
更新历史
无
JWT 是为分布式,微服务 而生。
这时Web应用是无状态的,即服务器端无状态,就是说服务器端不会存储像session这种东西,而是每次请求时access_token进行资源访问。
如一些REST风格的API, 大型tomcat集群(不做session同步)。
单体WEB应用还是推荐session-cookie机制。
JWT 概念
JWT
详细说明参照 jwt。
下面仅仅罗列JWT
标准定义的字段(Registered Claim):
载荷(Payload)
- iss: 该JWT的签发者
- sub: 该JWT所面向的用户
- aud: 接收该JWT的一方
- exp(expires): 什么时候过期,这里是一个Unix时间戳
- iat(issued at): 在什么时候签发的
- jti(JWT ID):该JWT的唯一标识
- nbf: 这个时间之前token不可用
头部(Header)
- typ: “JWT”,
- alg: 签名或摘要算法, (HS256,HS384,HS512,RS256,RS384,RS512,ES256,ES384,ES512)
信息会暴露
在JWT中,不应该在载荷里面加入任何敏感的数据。
示例
1 | Header//头信息 |
按照JWT规范,对这个令牌定义进行如下操作:
1 | base64urlencode(Header) |
JWT 撤销(revoke)
https://auth0.com/blog/blacklist-json-web-token-api-keys/