前端访问的请求头headers中携带了token,如何将token转成user传入我的这个方法中呢?
如下是我想要的结果:
User user就是token转成的user,
@PostMapping("add")
@ResponseBody
public Comment commentAdd(@RequestBody CommentAddVO VO, User user) {
Comment comment = comRep.save(VO.toComment(user));
//获取所有说说
return comment;
}
应该怎么做呢?
我现在的写法是弄了一个静态方法,获取当前请求中的token,再把token转成user通过方法返回,如下:
public static String getUserName() {
//获取到当前线程绑定的请求对象
HttpServletRequest request = ((ServletRequestAttributes)RequestContextHolder.getRequestAttributes()).getRequest();
String cookieToken =CookieUtils.getCookie(request,"token");
System.out.println("cookieToken:" + cookieToken);
String headerToken = request.getHeader("token");
System.out.println("headerToken:" + headerToken);
return headerToken;
}
但我觉得这样不如直接将 token转成user放到方法入参中简单,所以想请教一下怎么做比较好
或者如何将头请求放到方法入参中?
如果是要取header里的数据,用
RequestHeader
,用法类似RequestParam