Django 未验证访问令牌

问题描述 投票:0回答:1

我正在使用 JWT 来验证用户身份,在点击登录端点时,我在 Postman 中得到以下输出

{
    "message": "Login successful",
    "user_id": 2,
    "username": "Animesh0764",
    "tokens": {
        "refresh": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlbl90eXBlIjoicmVmcmVzaCIsImV4cCI6MTczNjU5MTAxNywiaWF0IjoxNzM1Mjk1MDE3LCJqdGkiOiI4YmJhMTczZmZkNDg0OWIzODU3YTZkMDE1MDZlNzM2ZCIsInVzZXJfaWQiOjJ9.-wX6S9yxNgFCjIR8Tu0FRc-Q2ivFDMVJouXkKkjDNtI",
        "access": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlbl90eXBlIjoiYWNjZXNzIiwiZXhwIjoxNzM1Mjk1OTE3LCJpYXQiOjE3MzUyOTUwMTcsImp0aSI6IjdhOWU3ZDA0NTllNzQxMzFhNDM1MWVlZjVkOWRiODcyIiwidXNlcl9pZCI6Mn0.LI6afRT66MFWTpomo1E9BHn5JTrRuGoTeX0EEwMRFvQ"
    }
}

在个人资料视图的承载中使用此访问令牌时,它显示:

{
    "detail": "User not found",
    "code": "user_not_found"
}

访问了 jwt.io 并验证了我的令牌,一切似乎都正常,它显示了正确的 user_id 但仍然无法验证。下面给出了双方的观点

#Login user
class UserLoginView(APIView):
    def post(self, req):
        serializer = UserLoginSerializer(data=req.data)
        if serializer.is_valid(raise_exception=True):
            user = serializer.validated_data['user']
            return Response({
                "message": "Login successful",
                "user_id": user.id,
                "username": user.username,
                "tokens": get_tokens_for_user(user)
            }, status=HTTP_200_OK)
        return Response(
            {"message": "Login failed"},
            status=HTTP_400_BAD_REQUEST
        )

#View user profile
class UserProfileView(APIView):
    permission_classes = [IsAuthenticated]

    def get(self, req):
        print(f"Request user: {req.user}")
        print(f"User authenticated: {req.user.is_authenticated}")
        if req.user.is_authenticated:
            user = req.user
            serializer = UserProfileSerializer(user)
            return Response(serializer.data, status=HTTP_200_OK)
        return Response({"message": "Unauthorized"}, status=HTTP_401_UNAUTHORIZED)

它应该验证令牌,然后显示响应 200,但始终显示 401 未经授权

甚至添加了

settings.py
文件中所需的所有内容

django jwt
1个回答
0
投票

您可以提供所有的代码setting.py,view.py和urls.py吗

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.