我使用Spring Cloud Gateway作为API服务器之前的身份验证和授权。
在客户授权后,我们将set-cookie
和JWT作为响应头,即Set-Cookie: my-token=jwtXXX
客户端收到响应后,他无权通过document.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布局。