【发布时间】:2023-03-03 03:04:01
【问题描述】:
我在这里看到了几个类似的问题,但似乎没有一个解决方案或特定设置与我的完全匹配。
我有一个 React 客户端,它通过 apollo 调用后端框架 Web API,它设置了一个仅限 http 的 cookie,我希望在所有后续请求中将其发回。后端服务配置为接受客户端域作为 CORS 来源和本地以及部署到测试服务器时,这一切正常。
我现在已将客户端和后端服务部署到单独的 Azure 应用服务,并且 cookie“似乎”没有在客户端上设置。
在初始响应标头中,我可以看到在 set-cookie 中设置的 cookie,但它不会包含在后续请求中,也不会出现在 chrome 工具的应用程序选项卡中。
我的 Apollo 调用指定 withCredentials: true
知道这可能是什么原因吗?
编辑。 从初始 API 请求返回的响应标头是:
Access-Control-Allow-Credentials: true
Access-Control-Allow-Origin: https://my-app-service.azurewebsites.net
Cache-Control: no-cache
Content-Encoding: gzip
Content-Length: 256
Content-Type: application/json; charset=utf-8
Date: Fri, 29 Oct 2021 12:04:27 GMT
Expires: -1
Pragma: no-cache
Server: Microsoft-IIS/10.0
Set-Cookie: {Cookie-Name}={JWT-Token}; expires=Fri, 29-Oct-2021 12:24:27
GMT; path=/; HttpOnly
Vary: Accept-Encoding
X-AspNet-Version: 4.0.30319
X-Powered-By: ASP.NET
【问题讨论】:
-
您能分享一下应该设置 cookie 的 API 响应吗?您可以在浏览器开发者工具中检查 --> 网络。控制台中是否有任何相关错误?
-
@fvd2 我已添加到原帖中
-
您是否将 sn-p 中的实际 {Cookie-Name} 和 {JWT-Token} 值替换为这些占位符值,即客户端是否接收到正确的 cookie 名称和值?