1 回答

TA贡献1803条经验 获得超6个赞
Cookies 由浏览器为首先设置 cookie 的域保存。只是因为您在“应用程序”选项卡中看不到 cookie,并不意味着 cookie 没有保存。
如果您的前端https://ui.example.com对 XHR 进行了调用https://foo.herokuapp.com并且该调用返回了一个Set-Cookie标头,则浏览器将该 cookie 保存在foo.herokuapp.com域下。您不会在ui.example.com“应用程序”选项卡中看到它。尽管如此,当您再次调用 XHR 时foo.herokuapp.com,浏览器将发送您之前设置的 cookie。
您可以进行此实验:登录后,打开一个新选项卡并导航到https://foo.herokuapp.com. 现在打开应用程序选项卡,您应该会在那里看到您的 cookie。
也就是说,请记住浏览器会将这些 cookie 视为 3rd 方 cookie,并且浏览器供应商最终将放弃对 3rd 方 cookie 的支持。最终,您应该确保您的前端和后端服务来自同一个父域。
至于另一个问题 - Heroku 在其网关和您的应用程序之间终止 SSL 不是问题。cookie 上的secure标志是浏览器的信息 - 浏览器不会通过非 SSL 连接接受或发送带有此标志的 cookie。您的浏览器和 heroku 服务器之间的连接是 SSL,因此 cookie 将被接受/发送。在您的后端,cookie 只是 HTTP 标头,后端并不真正关心 cookie 的标志或连接类型。
- 1 回答
- 0 关注
- 86 浏览
添加回答
举报