一.直接在controller层当中直接获取token
在controller层获取前端在请求头中存储的token有两种方式:
获取token方式1
/** * 获取请求头中的token方式一 * @param request * @return */ @GetMapping("/testGetToken") private apiResult getToken(HttpServletRequest request){ String token = request.getHeader("token"); return apiResult.ok(token); }
获取token方式2
/** * 获取请求头中的token方式二 * @param token * @return */ @GetMapping("/testGetTokenTwo") private apiResult getTokenTwo(@RequestHeader("token") String token){ return apiResult.ok(token); }
二.在service业务层获取token
在service层中获取token需要使用相应的工具类,这里我分享一个有用的工具类。代码如下:
import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.ServletRequestAttributes; import javax.servlet.http.HttpServletRequest; /** * 获取请求头中的token工具类 */ public class UserRequest { public static String getCurrentToken() { HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()) .getRequest(); String token = request.getHeader("token"); return token; } }
那么这个工具类如何使用呢?很简单,使用方法如下:
获取token方式3:
直接在相应的service业务层中使用工具类获取当前请求的token
String token = UserRequest.getCurrentToken();