我设置了一个内容帐户,用于下载视频及其返回的403时,当我尝试将webhok添加到我的django rest项目中的API时。我是Django休息和满足的新手。
http://my_server_id/testhook
我设置了钩子并添加了我的API URL。因此,当事件触发时,它称我为我的API。但是在django休息中,它显示出禁止的。我在将Webhook与Django REST集成时应该选择哪些额外的措施?
您的问题可能是因为csrf token
,您应该在带有POST
请求的标题中传递它。
X-CSRFToken: value
。
关于CSRF
就像@linovia在评论中所说的那样,csrf_exempt
已经在视图中豁免了,但是由于会话仍然有明确的检查。
这是关于此问题的一个很好的答案:
Django REST框架删除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)