一.直接在controller层当中直接获取token
在controller层获取前端在请求头中存储的token有两种方式:
获取token方式1
java"> /**
* 获取请求头中的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();