django - 如何解码 token 并获取djangorestframework-jwt包的信息为Django

标签 django python-2.7 django-rest-framework jwt

我已经开始使用 djangorestframework-jwt 包而不是 PyJWT ,我只是不知道如何解码传入的 token (我知道有验证 token 方法)......我需要知道的是如何解码 token 并返回信息编码......

最佳答案

我使用这种方法来解码 token 并验证用户。首先我在没有 algorithms=['HS256'] 的情况下使用然后它给出 jwt.exceptions.DecodeError。最后,我添加了它。以下方法对我来说效果很好。

class VerifyEmail(generics.GenericAPIView):
def get(self, request):
    token = request.GET.get('token')
    print('payload ' + str(settings.SECRET_KEY))
    try:
        payload = jwt.decode(jwt=token, key=settings.SECRET_KEY, algorithms=['HS256'])
        print('payload 1 ' + str(payload))
        user = User.objects.get(id=payload['user_id'])
        if not user.is_active:
            user.is_active = True
            user.save()
        return Response({'email': 'Successfully activated'}, status=status.HTTP_200_OK)
    except jwt.ExpiredSignatureError as e:
        return Response({'error': 'Activations link expired'}, status=status.HTTP_400_BAD_REQUEST)
    except jwt.exceptions.DecodeError as e:
        return Response({'error': 'Invalid Token'}, status=status.HTTP_400_BAD_REQUEST)

关于django - 如何解码 token 并获取djangorestframework-jwt包的信息为Django,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40522177/

相关文章:

django - 在我的 ViewSet 中使用 detail_route 时,在 DRF 序列化程序中收到 'request' 的 KeyError

python - 域名下划线的问题

python - 看不到postgresql数据库访问程序的输出

python - PyCharm/IntelliJ 启用包依赖项检查

reactjs - 更改日期时间字段以返回 django rest 框架中的 unix 时间戳

python - 'TypeError' 类型的对象不是 JSON 可序列化的

python - Django REST框架解析request.data引发错误

javascript - 使用 javascript 从模板调用函数

django - apache + django 1.3 内存问题

python-2.7 - 让 Dedupe 从现有标签数据中学习