我设置了一个内容丰富的帐户,用于下载视频,当我尝试在我的django rest项目中添加webhhok到api时返回403。我是django休息和满足的新手。
http://my_server_id/testhook
我设置了钩子并添加了我的api url。所以当事件触发时它会调用我的api。但是在django休息的所有时间都显示禁止。当我将django休息整合webhook时,我应该选择哪些额外的措施?
答案 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)