使用webpack-dev-server客户端和hapi API

时间:2018-05-09 21:43:43

标签: javascript node.js cookies webpack webpack-dev-server

我在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

1 个答案:

答案 0 :(得分:0)

webpack-dev-server使用的

http-proxy-middleware具有options用于cookie域/路径重写。

您应该查看它们是否满足您的需求。否则,您还可以在onProxyRes回调中手动解析和重置cookie。 Here是一个例子。