0

Django Rest Framework를 사용하여 REST API를 만들고 auth 엔드 포인트에 django-rest-auth를 사용했습니다. 이 API는 모바일 앱에서 사용됩니다. TokenAuthentication을 사용하여 API를 보호했습니다.Django-Rest-Auth 인증 문제

APIDOC을 사용할 때 문제가 발생합니다. coreapi를 사용하여 apidoc을 추가했습니다. 문서도 보호해야합니다. 위의 설정으로/docs /에 액세스 할 때 오류가 발생합니다.

'dict' object has no attribute 'data' 

그래서 SessionAuthentication을 사용하도록 설정했습니다.

REST_FRAMEWORK = { 
'DEFAULT_AUTHENTICATION_CLASSES': (
    'rest_framework.authentication.TokenAuthentication', 
    'rest_framework.authentication.SessionAuthentication', 
), 
'DEFAULT_PERMISSION_CLASSES': (
    'rest_framework.permissions.IsAuthenticated', 
) 
} 

이로 인해 CSRF 오류로 로그인 끝점 (/ rest-auth/login)이 깨졌습니다.

{ 
    "detail": "CSRF Failed: CSRF token missing or incorrect." 
} 

어떻게 그냥 TokenAuth와 엔드 포인트와 별도로 SessionAuth와 문서를 보호합니까? 아니면 로그인 끝점의 보안을 완전히 무시할 수 있습니까? URL을 정의하는 동안

답변

0

인증 클래스는 별도로 정의 할 수 있습니다 : 이것은 우리가 단지 문서에 대한 SessionAuthentication을 활성화하고 API 엔드 포인트에 대한 TokenAuthentication을 사용할 수 있습니다

url(r'^docs/', include_docs_urls(title='PeySO API Doc', public=False, 
           authentication_classes=[SessionAuthentication])), 

.