Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django 使用flatpages创建一个简单的facebook应用程序,但CSRF问题是由签名的请求引起的_Django_Facebook_Csrf_Django Flatpages - Fatal编程技术网

Django 使用flatpages创建一个简单的facebook应用程序,但CSRF问题是由签名的请求引起的

Django 使用flatpages创建一个简单的facebook应用程序,但CSRF问题是由签名的请求引起的,django,facebook,csrf,django-flatpages,Django,Facebook,Csrf,Django Flatpages,我正在尝试为客户的fb页面创建一个简单的、仅html的facebook应用程序。我想使用django的flatpages,这样客户和他的员工可以通过他们网站的django管理员更改应用程序的内容。问题是Django在facebook试图发送自己的帖子信息并访问应用程序的url时返回403“CSRF验证失败。请求中止。”错误 我已经知道@csrf_豁免装饰器,但我不确定如何将其应用于flatpage视图,因为它在django.contrib代码中。此外,我只想在要求视图调用特定的facebook.

我正在尝试为客户的fb页面创建一个简单的、仅html的facebook应用程序。我想使用django的flatpages,这样客户和他的员工可以通过他们网站的django管理员更改应用程序的内容。问题是Django在facebook试图发送自己的帖子信息并访问应用程序的url时返回403“CSRF验证失败。请求中止。”错误

我已经知道@csrf_豁免装饰器,但我不确定如何将其应用于flatpage视图,因为它在django.contrib代码中。此外,我只想在要求视图调用特定的facebook.html模板(而不是default.html模板)时禁用csrf保护。例如,如果碰巧有一个{%crsf_emption%}模板标记,那就太完美了


有人能想出解决这个问题的办法吗?或者我应该放弃使用django flatpages为facebook应用程序提供服务的想法?

尝试在称为facebook的视图上使用此装饰器:

from django.views.decorators.csrf import csrf_exempt
@csrf_exempt
这将禁用该视图上的csrf保护。
这有用吗?

我遇到了与你完全相同的问题。我想为flatpages(但不是站点的其余部分)禁用csrf,并最终使用以下中间件:

class DisableCSRFOnFlatPages(object):
    def process_request(self, request):
        try:
            FlatPage.objects.get(url=request.META.get('PATH_INFO'))
            setattr(request, '_dont_enforce_csrf_checks', True)
        except FlatPage.DoesNotExist:
            return

将其添加到您的设置中,当出现flatpage时,它应禁用csrf检查。

不完全如此。我重新提出了这个问题。谢谢我想用django_flatpages来制作facebook的“画布”,但我不知道如何在不影响django.contrib代码的情况下将@Crsf_豁免装饰器添加到flatpages视图中。如果我不能弄明白这一点,我可能会制作自己的django应用程序,并在其view方法上实现您的解决方案。