Я не могу аутентифицировать пользователя с помощью jwt-токена в моем проекте django
Я пытаюсь аутентифицировать пользователя с помощью jwt-токена, сгенерированного в представлении login, при копировании jwt-токена и добавлении его в заголовки для авторизации он говорит:
{
"detail": "Given token not valid for any token type",
"code": "token_not_valid",
"messages": [
{
"token_class": "AccessToken",
"token_type": "access",
"message": "Token is invalid or expired"
}
]
}
class loginapi(APIView):
def post(self, request):
try:
data = request.data
serializer = LoginSerializer(data=data)
if serializer.is_valid():
email = request.data['email']
password = request.data['password']
user = CUser.objects.filter(email=email).first() #check for user.
if user is None:
return Response({
'status':400,
'message':'User not found',
'data': {}
})
if not user.check_password(password):
return Response({
'status':400,
'message':'Wrong password',
'date': {}
})
payload = {
'id': user.id,
'exp': timezone.now() + datetime.timedelta(minutes=60),
'iat': timezone.now()
}
token = jwt.encode(payload, 'secret', algorithm='HS256')
#token_string = token.decode('utf-8')
response = Response()
response.set_cookie(key='jwt', value=token, httponly=True)
response.data = {
'jwt':token
}
return response
return Response({
'status':400,
'message':'Something went wrong',
'date': serializer.errors
})
except Exception as e:
return Response({'message': str(e)}, status=400)
class userapi(APIView):
def get(self, request):
token = request.COOKIES.get('jwt')
if not token:
raise AuthenticationFailed('Unauthenticated')
try:
payload = jwt.decode(token, 'secret', algorithms=\['HS256'\])
except jwt.ExpiredSignatureError:
raise AuthenticationFailed('Unauthenticated')
user = CUser.objects.filter(id=payload\['id'\]).first()
serializer = UserSerializer(user)
return Response(serializer.data)
вот мои логины и представления пользователей