2

トークン認証を使用しましたが、正常に機能しています。つまり、ユーザーを認証し、ユーザーがログインしています。ユーザーが認証されたユーザーであっても。以下は、私がログインしていることを示すスクリーンショットです (jadhav@gmail.com):

ここに画像の説明を入力

これのすぐ次のタブには、「認証の詳細が提供されていません」と表示されます。

ここに画像の説明を入力

誰かが何が悪いのか教えてもらえますか? わかりました、詳細を提供しています: これらは私の設定です:

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

これが私が認証した方法です:

クラス UserLoginAPIView(APIView):

permission_classes = [AllowAny]
serializer_class = UserLoginSerializer

def post(self, request, *args, **kwargs):
    data = request.data
    serializer = UserLoginSerializer(data=data)
    if serializer.is_valid(raise_exception=True):
        # new_data = serializer.data
        if serializer.data:
            user = authenticate(username=request.data['username'], password=request.data['password'])
            login(request, user)
            print("IsAuthenticated", user.is_authenticated)
        token, _ = Token.objects.get_or_create(user=user)
        return Response({'token': token.key},
                        status=HTTP_200_OK)

私が制限を置く別のビュー:

クラス BoardCreateAPIView(CreateAPIView):

queryset = Boards.objects.all()
serializer_class = BoardCreateSerializer
permission_classes = (IsAuthenticated,)
4

2 に答える 2