2017-02-16 8 views
1

내 장고 휴지 프로젝트의 API에 webhock을 추가하려고 시도 할 때 동영상 다운로드에 대한 내용이 담긴 계정을 설정했습니다. 나는 장고 휴식과 만족에 새로운 있습니다.내용이 풍부한 wehook은 장고 휴지통과 통합되었을 때 403을 반환합니다.

http://my_server_id/testhook 

나는 후크를 설정하고 내 API URL을 추가했습니다. 이벤트가 트리거되면 내 API를 호출했습니다. 그러나 장고 휴식 시간에 금지되어 있습니다. 장고 휴식과 webhook을 통합 할 때 어떤 추가 조치를 취해야합니까?

답변

0

csrf token으로 인해 문제가 발생한 것 같습니다. POST 요청으로 헤더에 전달해야합니다.
X-CSRFToken: value. @Linovia처럼
docs about csrf

은 코멘트에, csrf_exempt 이미보기에서 면제하지만, 때문에 세션의 여전히 명시 적 검사가 말했다.
Django Rest Framework remove csrf
간단히 말해서 당신이 SessionAuthentication 클래스에서 상속 enforce_csrf을 무시할 수 :
다음은이 문제에 대한 좋은 대답이다. 뷰 또는 기본 장고 REST의 설정에

from rest_framework.authentication import SessionAuthentication 

class CsrfExemptSessionAuthentication(SessionAuthentication): 

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

설정을 :

authentication_classes = (CsrfExemptSessionAuthentication, BasicAuthentication) 
+0

그것은 바로 임의의 문자열입니다. webhook 형식으로 추가해야하는 csrf 토큰의 가치를 어떻게 알 수 있습니까? –

+0

@SkepticalGeek 서버에 대한 GET 요청의 응답에서 해당 문자열을 볼 수 있습니다. 웹 후크의 경우에는 csrf check를 방지하기 위해'csrf_exempt'를 사용해야 할 것입니다. –

+1

보기가 이미 면제되었지만 DRF의 세션 인증이 명시적인 확인을 수행하기 때문에 csrf_exempt가 장고 REST 프레임 워크에 아무런 영향을 미치지 않는다는 답이 옳습니다. – Linovia