springboot项目中如何获取请求头当中的token
作者:mmseoamin日期:2023-12-05

一.直接在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();