拦截器响应头中配置“Access-Control-Expose-Headers”实现跨域请求暴露token

/ Java / 没有评论 / 1319浏览

拦截器响应头中配置“Access-Control-Expose-Headers”实现跨域请求暴露token

问题场景:

和前端同事联调接口中,前端同事反映说在跨域请求的情况下无法获取token的值,后来找到解决办法:

  1. 在登录拦截器处理类中的响应对象,把token对象暴露出来即可
  2. 关键代码 response.setHeader("Access-Control-Expose-Headers", "token"); 示例如下:
String newToken = JwtUtil.getToken(date, params);
if (StrUtil.isNotBlank(newToken)) {
    assert newToken != null;
    redisTemplate.opsForValue().set("user:" + map.get("userAccount"), newToken, millis, TimeUnit.MILLISECONDS);
    response.addHeader("token", newToken);
    response.setHeader("Access-Control-Expose-Headers", "token");
}