2.2 jwt查询接口 2.2.1 需求分析 认证服务对外提供jwt查询接口,流程如下: 1、客户端携带cookie中的身份令牌请求认证服务获取jwt 2、认证服务根据身份令牌从redis中查询jwt令牌并返回给客户端。 2.2.2 API 在认证模块定义 jwt查询接口:

[mw_shl_code=applescript,true]@Api(value = "jwt查询接口",description = "客户端查询jwt令牌内容") public interface AuthControllerApi {
@ApiOperation("查询userjwt令牌")
public JwtResult userjwt();
....[/mw_shl_code] 2.2.3 Dao 无 2.2.4 Service 在AuthService中定义方法如下:

[mw_shl_code=applescript,true]//从redis查询令牌
public AuthToken getUserToken(String token){
String userToken = "user_token:"+token;
String userTokenString = stringRedisTemplate.opsForValue().get(userToken);
if(userToken!=null){
AuthToken authToken = null;
try {
authToken = JSON.parseObject(userTokenString, AuthToken.class);
} catch (Exception e) {
LOGGER.error("getUserToken from redis and execute JSON.parseObject error {}",e.getMessage());
e.printStackTrace();
}
return authToken; }
return null; } [/mw_shl_code] 2.2.5 Controller [mw_shl_code=applescript,true]@Override
@GetMapping("/userjwt")
public JwtResult userjwt() {
//获取cookie中的令牌 [/mw_shl_code] [mw_shl_code=applescript,true] String access_token = getTokenFormCookie();
//根据令牌从redis查询jwt
AuthToken authToken = authService.getUserToken(access_token);
if(authToken == null){
return new JwtResult(CommonCode.FAIL,null);
}
return new JwtResult(CommonCode.SUCCESS,authToken.getJwt_token());
}
//从cookie中读取访问令牌
private String getTokenFormCookie(){
Map<String, String> cookieMap = CookieUtil.readCookie(request, "uid");
String access_token = cookieMap.get("uid");
return access_token;
} [/mw_shl_code] 2.2.6 测试 使用postman测试 1、请求 /auth/userlogin