A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

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

[AppleScript] 纯文本查看 复制代码
@Api(value = "jwt查询接口",description = "客户端查询jwt令牌内容") public interface AuthControllerApi {   
    @ApiOperation("查询userjwt令牌")    
 public JwtResult userjwt();  
   ....

2.2.3 Dao
无 2.2.4 Service
在AuthService中定义方法如下:

[AppleScript] 纯文本查看 复制代码
//从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; 
    }

2.2.5 Controller
[AppleScript] 纯文本查看 复制代码
@Override  
   @GetMapping("/userjwt")    
 public JwtResult userjwt() {  
       //获取cookie中的令牌

[AppleScript] 纯文本查看 复制代码
 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;   
  }

2.2.6 测试
使用postman测试
1、请求 /auth/userlogin




0 个回复

您需要登录后才可以回帖 登录 | 加入黑马