0

私はDjango Rest Frameworkを使用してREST APIを作成し、authエンドポイントにdjango-rest-authを使用しました。これらのAPIはモバイルアプリで使用されます。私はTokenAuthenticationを使ってAPIを保護しました。Django-Rest-Auth認証の問題

問題は、APIDOCを使用するときに発生します。私はcoreapiを使ってapidocを追加しました。ドキュメントも保護する必要があります。私は/ドキュメントにアクセスしたとき、私は上記の設定で/エラーの下に取得:

'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', 
) 
} 

この結果、ログインエンドポイント(/ rest-auth/login)がCSRFエラーで中断しました。

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

トークンだけでエンドポイントを保護するにはどうしたらいいですか?または、ログインエンドポイントのセキュリティを完全にバイパスできますか? URLを定義する際

答えて

0

認証クラスが個別に定義することができます。

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

これは、私たちは、単にドキュメントのためSessionAuthenticationを有効にして、APIエンドポイントのTokenAuthenticationを使用することができます。