服务器发出set-cookie响应后,无法通过客户端访问Cookie

时间:2019-08-12 12:08:37

标签: java angular spring cookies spring-cloud-gateway

我使用Spring Cloud Gateway作为API服务器之前的身份验证和授权。

在客户授权后,我们将set-cookie和JWT作为响应头,即Set-Cookie: my-token=jwtXXX

客户端收到响应后,他无权通过document.cookie

访问cookie
  • 我们使用了ResponseCookie类的spring并使用path=/httpOnly=false创建了一个cookie。

  • 我们将Set-Cookie添加到了Access-Control-Expose-Header

ResponseCookie jwtCookie = ResponseCookie.from('my-token', 'jwtXXX')
    .httpOnly(false)
    .path("/")
    .build()

exchange.getResponse()
        .addCookie(jwtCookie)

return chain.filter(exchange)

如果查看日志,则会看到以下响应:

HTTP/1.1 200 OK
// Headers..
set-cookie: my-token=jwtXXX; Path=/

该Cookie在开发工具网络标签上以ResponseCookie的形式接收,并随cookie上的每个请求一起发送到服务器。

但是在响应之后,如果我使用以下方法打印cookie

~> document.cookie
<~ ""

文档中没有cookie。

我们要访问令牌,因为他拥有auth数据,该数据确定了UI布局。

0 个答案:

没有答案