将单独的 Dyno 用于反应前端和 Django 后端时的 Cookie
Cookies when using separate Dyno for react frontend and Django backend
我正在构建一个简单的 Web 应用程序,使用 React.js 作为前端,使用 Django 作为服务器端。
因此 frontend.herokuapp.com
和 backend.herokuapp.com
。
当我尝试通过 React 应用程序调用我的 API 时,从 API 收到的 cookie 没有随请求一起发送。
我曾期望我能够支持此配置而无需执行任何特殊操作,因为所有服务器端请求(我认为)都将由 JS 客户端应用程序使用其身份验证 cookie 直接发送到后端进程附上。
为了找到我认为可行的解决方案,我尝试设置
SESSION_COOKIE_DOMAIN = "herokuapp.com"
虽然不太理想(因为 herokuapp.com 是一个广阔的领域)在生产中似乎很安全,因为它们将在 api.myapp.com 和 www.myapp.com 上。
但是,在 settings.py 中设置此值后,我在点击 /oauth/complete/linkedin-oauth2/
端点时得到 AuthStateMissing
。
在 google 中搜索 AuthStateMissing SESSION_COOKIE_DOMAIN
得到一个单独的结果,这意味着该问题被报告为 Django 社交身份验证中的一个错误,并且已经关闭,没有进一步的评论。
任何人都可以发出任何光,我们将不胜感激。
我 运行 在使用 herokuapp.com 时遇到了完全相同的问题。
我什至在
上发了一个问题
根据 Heroku 文档:
In other words, in browsers that support the functionality, applications in the herokuapp.com domain are prevented from setting cookies for *.herokuapp.com
Heroku 阻止来自前端的 cookie。herokuapp.com 和后端。herokuapp.com
您需要将自定义域添加到前端。herokuapp.com 和后端。herokuapp.com
完整答案
我正在构建一个简单的 Web 应用程序,使用 React.js 作为前端,使用 Django 作为服务器端。
因此 frontend.herokuapp.com
和 backend.herokuapp.com
。
当我尝试通过 React 应用程序调用我的 API 时,从 API 收到的 cookie 没有随请求一起发送。
我曾期望我能够支持此配置而无需执行任何特殊操作,因为所有服务器端请求(我认为)都将由 JS 客户端应用程序使用其身份验证 cookie 直接发送到后端进程附上。
为了找到我认为可行的解决方案,我尝试设置
SESSION_COOKIE_DOMAIN = "herokuapp.com"
虽然不太理想(因为 herokuapp.com 是一个广阔的领域)在生产中似乎很安全,因为它们将在 api.myapp.com 和 www.myapp.com 上。
但是,在 settings.py 中设置此值后,我在点击 /oauth/complete/linkedin-oauth2/
端点时得到 AuthStateMissing
。
在 google 中搜索 AuthStateMissing SESSION_COOKIE_DOMAIN
得到一个单独的结果,这意味着该问题被报告为 Django 社交身份验证中的一个错误,并且已经关闭,没有进一步的评论。
任何人都可以发出任何光,我们将不胜感激。
我 运行 在使用 herokuapp.com 时遇到了完全相同的问题。
我什至在
根据 Heroku 文档:
In other words, in browsers that support the functionality, applications in the herokuapp.com domain are prevented from setting cookies for *.herokuapp.com
Heroku 阻止来自前端的 cookie。herokuapp.com 和后端。herokuapp.com 您需要将自定义域添加到前端。herokuapp.com 和后端。herokuapp.com
完整答案