个人查询开发

controller类:

@GetMapping("find_by_token")
public JsonData findByToken(HttpServletRequest request){
//这里的getAttribute需要在拦截器中使用setAttribute才能获取到

Integer userId = (Integer) request.getAttribute("user_id");
if (userId == null){
return JsonData.buildError("查询失败");
}
User user = userService.findByUserId(userId);

return JsonData.buildSuccess(user);
}

拦截器:
public class LoginInterceptor implements HandlerInterceptor {

/**
* 进入controller之前
* @param request
* @param response
* @param handler
* @return
* @throws Exception
*/
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
try {
String accessToken = request.getHeader("token");
if (accessToken == null){
accessToken = request.getParameter("token");
}

if (StringUtils.isNotBlank(accessToken)){
Claims claims = JwtUtils.checkJWT(accessToken);
if (claims == null){
sendJsonMessage(response, JsonData.buildError("登录过期,重新登录"));
return false;
}

Integer id = (Integer) claims.get("id");
String name = (String) claims.get("name");


//setAttribute
                request.setAttribute("user_id",id);
request.setAttribute("name",name);
return true;
}
}catch (Exception e){

}
sendJsonMessage(response, JsonData.buildError("登录失败,请重试"));
return false;
}

...
}

impl实现类:

@Override
public User findByUserId(Integer userId) {
User user = userMapper.findByUserId(userId);
user.setPwd("");
return user;
}
posted @ 2021-12-03 12:01  智慧搬运工  阅读(42)  评论(0)    收藏  举报