部署时 Django 管理员登录“CSRF cookie 未设置”,但可在本地主机上运行

Kat*_*a S 0 django csrf django-admin django-sessions django-csrf

我向 CORS_ALLOWED_ORIGINS 和 CSRF_TRUSTED_ORIGINS 以及 ALLOWED_HOSTS 添加了域的多个变体。我添加django.template.context_processors.csrf到 context_processors 中。我没有将 CSRF_COOKIE_SECURE 和 SESSION_COOKIE_SECURE 设置为 true (我希望我可以更改)。我想不出还有什么可以让它在 Django admin 上工作,并且在我设置会话身份验证(包括配置 csrf 和会话 cookie)后它才停止工作。当我没有对前端进行任何身份验证时,Django 登录工作正常,甚至像我说的那样,它在本地主机上工作正常。

我真的很感激任何有关我可以尝试解决此问题的其他建议。

更新:现在我收到此错误消息 Referer checking failed - https://myapp.herokuapp.com/admin/login/?next=/admin/ does not match any trusted origins.

我认为问题可能在于它是一个 heroku 子域,所以我添加了一个域和一个 SSL 证书。新域出现完全相同的错误。

我的 CORS_ALLOWED_ORIGINS 包括https://myapp.herokuapp.comandhttps://www.example.com和,因为斜杠不断从浏览器复制,https://www.example.com/. 即使有 SSL 证书,我也包含了每个地址的 http:// 版本。

小智 7

错误“引用检查失败 - ...与任何可信来源不匹配”与CORS_ALLOWED_ORIGINS. 这是关于CSRF_TRUSTED_ORIGINS设置的。

确保包括https://myapp.herokuapp.com

CSRF_TRUSTED_ORIGINS = ["https://myapp.herokuapp.com", "https://www.myapp.herokuapp.com"]
Run Code Online (Sandbox Code Playgroud)