私はDjango Rest Frameworkを使用してユーザー登録/ログインを使用してWebアプリケーションを構築しています。 私はCSRFトークンを必要としないようにユーザーのサインアップを免除しようとしています。これが私の見解は、今のように見えるものです:Django csrf_exemptがSessionAuthenticationと連携していません
class UserSignUpView(generics.CreateAPIView):
permission_classes = [] # FIXME: doesn't seem to be working
serializer_class = UserSerializer
@method_decorator(csrf_exempt)
def post(self, request, *args, **kwargs):
super().post(self, request, *args, **kwargs)
def get_permissions(self):
if self.request.method == 'POST':
return (permissions.AllowAny(), TokenHasReadWriteScope())
return False
私のsettings.pyは、次のようになります。
REST_FRAMEWORK = {
# Use Django's standard `django.contrib.auth` permissions,
# or allow read-only access for unauthenticated users.
'DEFAULT_AUTHENTICATION_CLASSES': (
'rest_framework.authentication.BasicAuthentication',
'rest_framework.authentication.SessionAuthentication',
),
'DEFAULT_PERMISSION_CLASSES': [
'rest_framework.permissions.AllowAny',
]
}
私はまだ古典的なCSRF verification failed. Request aborted.
Forbidden (CSRF cookie not set.): /users/
私のバックエンドの出力に、フロントエンドでこれを取得します
なぜこれは機能しませんか?私は手動でCSRFクッキーを設定していないという事実と関係がありますか?
get_permissionsはデコレータを必要としませんcsrf_exempt? POSTメソッドを使用しています。 @csrf_exemptを書くことができます:[Documentation](https://docs.djangoproject.com/en/1.10/ref/csrf/#django.views.decorators.csrf.csrf_protect) – Wilfried
また、[this post](http ://stackoverflow.com/questions/17716624/django-csrf-cookie-not-set) – Wilfried
@Wilfried 'get_permissions'の先頭に@method_decorator(csrf_exempt)を追加しようとしましたが、変更はありません –