JWT身份验证问题

问题描述

伙计们, 这是我在这里的第一篇文章,因此,我将尝试尽可能具体。 我在这个项目中需要使用JWT令牌进行身份验证。想法是使用自定义有效负载生成令牌,其中包括用户的最后重置日期。在登录过程中,我按照以下代码创建令牌:

payload={
                    'sub':'authorization_token','iss':'dani','aud':'something','exp': datetime.utcNow() + JWT_AUTH.get('JWT_EXPIRATION_DELTA'),'password_reset_time': str(user.reset_request_time),'user_id':user.pk

                }
                self.token = jwt.encode(payload,SECRET_KEY,algorithm='HS256')

当我通过Postman发送登录日志时,作为响应,我收到的令牌已装载了所需的信息。事实是,我们出于测试目的而拥有此验证视图:

class ValidateView(APIView):
permission_classes = (IsAuthenticated,)
SERVER_LOG.error('Helloview: %s',"123")
def get(self,request):
    content = {'validated': True}
    return Response(content)

因此,如果令牌已正确验证,它应该返回给我:

 {
    "validated": true
 }

相反,我收到了:

{
    "detail": "Incorrect authentication credentials."
}

我仍然是Django的菜鸟,我的建议是负责验证令牌的代码段不知道我对有效负载所做的更改,因此在解码过程中,它期望使用不同的格式关于有效载荷或其中的不同类型信息的信息,所以我的最新想法是,我应该为令牌创建一些自定义的Validation视图,并指定应解码的有效载荷的格式。关于我面临的问题的每条建议或指导都将不胜感激。

解决方法

您是否已在标头中设置令牌?

Authorization: Bearer <your token goes here>