Как декодировать и проверить токен simple-jwt- django -rest-framework - PullRequest
2 голосов
/ 13 июля 2020

Я пытаюсь проверить и декодировать токен simple-jwt- django -rest-framework. Я знаю, что мы можем использовать verify api для simple-jwt. Но я хочу расшифровать и проверить свои взгляды. Ниже приведен текущий код, который я пытаюсь выполнить: -

//in views.py

class home(APIView):
   def post(self,request,*args,**kwargs):
      print("request is ",request._request)
      verify_token_response = token_verify(request._request)
      print("status_code is ", verify_token_response.status_code)

      if(verify_token_response.status_code == 200):
        jwt_object  = JWTAuthentication() 
        validated_token = jwt_object.get_validated_token(request._request)
        user            = jwt_object.get_user(validated_token)
        print(user)
    
    return Response({
            'status':True, 
            'message':'home'
            })

Этот код работает для меня для проверки токена. Он правильно проверяет токен, но когда я получаю valiated_token и пользователя, он дает мне ошибку: -

{
"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"
    }
]

}

1 Ответ

0 голосов
/ 14 июля 2020

Я думаю, вам следует отправлять RAW_TOKEN, а не request._request

  if(verify_token_response.status_code == 200):
    jwt_object      = JWTAuthentication() 
    header          = jwt_object.get_header(request)
    raw_token       = jwt_object.get_raw_token(header)
    validated_token = jwt_object.get_validated_token(raw_token)
    user            = jwt_object.get_user(validated_token)
    print(user)
...