我在localhost:3000
上运行了一个运行webpack-dev-server的ReactJS客户端。它连接到localhost:8080
上的Hapi API服务器,我尝试使用hapi-auth-jwt2
提供基本Cookie(我也试过hapi-auth-cookie
,结果相同)。< / p>
我可以看到响应标头提供了有效的set-cookie
标头,一切看起来都不错,但是我的所有浏览器测试都忽略了它,并且从未设置过cookie(通过检查document.cookie
并使用浏览器工具进行验证像Chrome的应用程序选项卡)。当我使用Postman直接连接到API服务器时,它会正确地选择set-cookie
标头并存储它,因此我认为它只是某种域/端口/主机配置问题。
作为一个简单的测试,我尝试部署到我们的ec2环境,但这没有帮助。 ec2环境类似,一个实例为客户端提供服务,另一个实例为API提供服务。我还尝试修改我的本地hosts
文件,以重定向127.0.0.1 example.com
等域名并在Cookie中提供domain=.example.com
字段,但这也没有帮助。< / p>
我想我只是缺少一些基本的东西,但我不知道它是什么。登录时请参阅下面的响应/请求标题。
请求标题
POST /login HTTP/1.1
Host: localhost:8080
Connection: keep-alive
Content-Length: 47
Accept: application/json, text/plain, */*
Origin: http://localhost:3000
Authorization: undefined
User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.139 Safari/537.36
Content-Type: application/json
Referer: http://localhost:3000/
Accept-Encoding: gzip, deflate, br
Accept-Language: en-US,en;q=0.9
响应标题
HTTP/1.1 200 OK
authorization: <jwt token>
vary: origin,accept-encoding
access-control-allow-origin: http://localhost:3000
access-control-allow-credentials: true
access-control-expose-headers: WWW-Authenticate,Server-Authorization
content-type: application/json; charset=utf-8
set-cookie: cookie=token; Max-Age=604800; Expires=Wed, 16 May 2018 21:11:23 GMT; SameSite=Lax; Path=/
cache-control: no-cache
content-encoding: gzip
Date: Wed, 09 May 2018 21:11:23 GMT
Connection: keep-alive
Transfer-Encoding: chunked
答案 0 :(得分:0)
http-proxy-middleware具有options用于cookie域/路径重写。
您应该查看它们是否满足您的需求。否则,您还可以在onProxyRes
回调中手动解析和重置cookie。 Here是一个例子。