Django 如何定制JWT响应的有效负载部分

Django 如何定制JWT响应的有效负载部分,django,django-rest-framework,jwt,Django,Django Rest Framework,Jwt,我需要如何自定义url(r'^auth/login/,获取jwt\u令牌)视图以允许我向jwt令牌添加数据 我有一个django rest框架API,由独立的web应用程序使用。我想要的是将登录用户的角色和权限以及djangorestframework jwt已经返回的内容返回到web应用程序 我已经在python字典中拥有了这些角色,但我无法确定覆盖默认负载需要什么 用户\有效负载={'user':用户,'roles':roles} 我认为这就像用我的用户负载替换payload=jwt\u p

我需要如何自定义
url(r'^auth/login/,获取jwt\u令牌)
视图以允许我向jwt令牌添加数据

我有一个django rest框架API,由独立的web应用程序使用。我想要的是将登录用户的角色和权限以及djangorestframework jwt已经返回的内容返回到web应用程序

我已经在python字典中拥有了这些角色,但我无法确定覆盖默认负载需要什么

用户\有效负载={'user':用户,'roles':roles}

我认为这就像用我的用户负载替换
payload=jwt\u payload\u handler(user)
中的“user”一样简单,但随后我得到了序列化程序错误。有没有更干净/更简单的方法


djangorestframework==3.4.7,djangorestframework jwt==1.8.0 负责控制登录或刷新后返回的响应数据。重写以返回自定义响应,例如包括用户的序列化表示

默认情况下返回JWT令牌

例如:

def jwt_response_payload_handler(token, user=None, request=None):
    return {
        'token': token,
        'user': UserSerializer(user).data
    }

默认值为
{'token':token}

这很好,可以正常工作。但是,我如何才能将“内容”添加到令牌本身?我希望能够“操纵”令牌的私有部分,以便当web应用稍后向我发送令牌时,我从令牌中获取信息,而不是从数据库中重新获取。我认为
JWT\u PAYLOAD\u HANDLER
设置适用于这种情况。根据文档,它说您可以指定一个自定义函数来生成令牌负载。