当与django rest集成时,内容wehook返回403

时间:2017-02-16 08:37:26

标签: django-rest-framework webhooks contentful

我设置了一个内容丰富的帐户,用于下载视频,当我尝试在我的django rest项目中添加webhhok到api时返回403。我是django休息和满足的新手。

http://my_server_id/testhook

我设置了钩子并添加了我的api url。所以当事件触发时它会调用我的api。但是在django休息的所有时间都显示禁止。当我将django休息整合webhook时,我应该选择哪些额外的措施?

1 个答案:

答案 0 :(得分:0)

您的问题可能是因为csrf token,您应该在带有POST请求的标头中传递它。
 X-CSRFToken: value
docs about csrf

就像@Linovia在评论中所说,csrf_exempt已经在一个视图中被豁免,但由于会话仍有明确的检查。
关于这个问题,这是一个很好的答案:
Django Rest Framework remove csrf
简而言之,您可以从SessionAuthentication类继承并覆盖enforce_csrf

from rest_framework.authentication import SessionAuthentication 

class CsrfExemptSessionAuthentication(SessionAuthentication):

    def enforce_csrf(self, request):
        return  # To not perform the csrf check previously happening

在视图或基本的Django REST配置中设置它:

authentication_classes = (CsrfExemptSessionAuthentication, BasicAuthentication)