【发布时间】:2020-12-20 20:36:57
【问题描述】:
我正在通过document.cookie = 'foo=bar;secure;path=/;' 设置一个cookie,并且我正在连接到一个WebSocket。我尝试了 samesite=None 和许多其他变体,但都没有成功,所以我有点卡住了。我想使用这个 cookie 进行身份验证(它实际上是一个 jwt 和一个特定的 api 密钥成对)。
流程是:
- 打开前端应用
- 登录,取回 jwt
- 将 JWT 和特殊 API 密钥存储在令牌中
- 发出 websocket 请求
- 如果使用 cookie 制作 - 一切正常
当前端应用程序和后端应用程序都在本地主机上时,这在本地工作。
在部署两个应用程序时,前端应用程序不会神奇地发送 cookie。它们都托管在 heroku 上,并分别指向子域 x.mysite.com 和 y.mysite.com。
是否有我需要注意的特定浏览器行为?
提前致谢。
【问题讨论】:
-
如果你还没有启用跨站请求,你需要在 Django 中启用pypi.org/project/django-cors-headers
-
我之前已经启用它并使用星号作为规则,但没有运气:(@Ken4scholars
-
@BorkoKovacev 我不相信星号有效。我认为您实际上需要列出 x.mysite.com 和 y.mysite.com
标签: google-chrome firefox cookies svelte django-channels