3

我已将 django-rest-framework 与 django-oauth-toolkit 集成。它给了我{"detail": "Authentication credentials were not provided."}未经身份验证的 API。

这是我的settings.py

REST_FRAMEWORK = {
    'DEFAULT_AUTHENTICATION_CLASSES': (
        'oauth2_provider.contrib.rest_framework.OAuth2Authentication',
    ),
    'DEFAULT_PERMISSION_CLASSES': (
        'rest_framework.permissions.IsAuthenticated',
    )
}

视图.py

from rest_framework.views import APIView
from rest_framework.response import Response


class SignUpView(APIView):
    """
        Signup for the user.
    """
    def get(self, request):
        return Response({'result': True, 'message': 'User registered successfully.'})

网址.py

from django.urls import path
from myapp.views import SignUpView

urlpatterns = [
    path('signup/', SignUpView.as_view()),

]
4

1 回答 1

0

对于注册用户,您不需要任何身份验证。所以你需要这样写你的观点。

class SignUpView(APIView):
    """
        Signup for the user.
    """
    authentication_classes = ()
    permission_classes = ()

    def get(self, request):
        return Response({'result': True, 'message': 'User registered successfully.'})

对于所有其他请求,您需要在标头中传递身份验证令牌。在这种情况下,您将无需提及身份验证和权限类,因为将使用您的默认类。

于 2018-02-13T18:31:14.410 回答