前言
通过我们创建Oauth2服务器,我们已经完成了利用Oauth2颁发和验证令牌
但是我们登录成功用户的信息仍然保存在了服务器内存中
其实就是我们看到的令牌是UUID作为的key,用户的信息是内存中的value
本质上是使用这个uuid获得内存中的用户
为了实现刚开始的目标,解放内存,我们需要使用JWT令牌
什么是JWT令牌
JWT(Json Web Token)
· 是一种json格式,保存用户信息到客户端的一种形式
······将用户信息转换为json格式,然后进行加密,然后发送在客户端
······客户端接收到这个JWT之后,保存在客户端,之后在访问其它模块时,带着JWT,资源服务器解析获······得用户信息,进行访问
······这样就能不在内存中保存信息了··
下面我们尝试实现这个效果
@Configuration public class TokenConfig { // 定义JWT令牌的解密口令 private final String SINGING_KEY="pass"; // 向Spring 容器中注入一个令牌生成器对象 @Bean public TokenStore tokenStore(){ return new JwtTokenStore(accessTokenConverter()); } @Bean public JwtAccessTokenConverter accessTokenConverter(){ // 实例化Jwt加密器 JwtAccessTokenConverter converter= new JwtAccessTokenConverter(); // 设置加密解密口令 converter.setSigningKey(SINGING_KEY); return converter; } }
****************************除此之外我们还要在授权服务器中增加以下配置
// ↓↓↓↓↓↓↓注入↓↓↓↓↓↓↓↓↓↓↓↓↓↓ @Autowired private JwtAccessTokenConverter accessTokenConverter;
// 必须设置令牌增强才能生成Jwt令牌 // 实例化令牌增强对象 TokenEnhancerChain chain=new TokenEnhancerChain();