Django应用程序在本地运行,但我在Heroku上获得CSRF验证失败 [英] Django app runs locally but I get CSRF verification failed on Heroku

查看:20
本文介绍了Django应用程序在本地运行,但我在Heroku上获得CSRF验证失败的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的应用程序在heroku local上运行良好,但在部署到Heroku后,每次我尝试以管理员身份登录/注册/登录时,它都会返回如下所示的错误。

我已尝试将@csrf_exempt放在profile视图上,但没有解决问题。

我能做些什么?

推荐答案

错误消息非常简单(请原谅打字错误,因为我无法从图像中复制):

Origin checking failed - https://pacific-coast-78888.herokuapp.com does not match any trusted origins

您正在使用的域不是CSRF的可信来源。

然后有一个指向文档的链接,我怀疑该链接指向the Django CSRF documentation,但the documentation for the CSRF_TRUSTED_ORIGINS setting可能更有用:

不安全请求的可信来源列表(例如POST)。

对于包含Origin标头的请求,Django的CSRF保护要求标头与Host标头中的来源匹配。

在您的settings.py中查找CSRF_TRUSTED_ORIGINS并将https://pacific-coast-78888.herokuapp.com添加到列表中。如果该设置不存在,只需添加它:

CSRF_TRUSTED_ORIGINS = ["https://pacific-coast-78888.herokuapp.com"]

这篇关于Django应用程序在本地运行,但我在Heroku上获得CSRF验证失败的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆