Django rest framework Allauth不会返回所需的令牌负载

Django rest framework Allauth不会返回所需的令牌负载,django-rest-framework,django-allauth,Django Rest Framework,Django Allauth,我有一个名为merchant的django rest auth项目。在它里面,我用JWT实现了django restauth和allauth包 一切正常。但是,我希望在JWT令牌中返回其他字段,下面是我的实现 在app.views.py中 def jwt_response_payload_handler(token, user=None, request=None): return { 'token': token, 'user': User_Serializer(use

我有一个名为merchant的django rest auth项目。在它里面,我用JWT实现了django restauth和allauth包

一切正常。但是,我希望在JWT令牌中返回其他字段,下面是我的实现

在app.views.py中

def jwt_response_payload_handler(token, user=None, request=None):
    return {
    'token': token,
    'user': User_Serializer(user, context={'request':request}).data
    }
序列化程序.py

class User_Serializer(serializers.ModelSerializer):
    class Meta:
        model = User
        fields = ['email', 'username', 'is_staff']
设置.py

JWT_AUTH = {
'JWT_RESPONSE_PAYLOAD_HANDLER': 'merchant.coin_app.views.jwt_response_payload_handler',
'JWT_EXPIRATION_DELTA': datetime.timedelta(minutes=10),
'JWT_AUTH_HEADER_PREFIX': 'JWT'
}

返回的有效负载不包含电子邮件/is_人员。可能我遗漏了什么。

在生成JWT令牌后,调用
JWT\u RESPONSE\u PAYLOAD\u handler
设置选项中注册的处理程序

需要定制的处理程序是创建标记化的有效负载对象,而不是
JWT\u RESPONSE\u payload\u处理程序

在项目设置中,配置

JWT_AUTH = {
  'JWT_PAYLOAD_HANDLER': 'merchant.coin_app.views.jwt_payload_handler',
  'JWT_EXPIRATION_DELTA': datetime.timedelta(minutes=10),
  'JWT_AUTH_HEADER_PREFIX': 'JWT'
}
然后在您看来,扩展
rest\u framework\u jwt.utils.jwt\u payload\u handler的结果

导入rest\u框架\u jwt.utils.jwt\u有效负载\u处理程序作为基本\u jwt\u有效负载\u处理程序
def jwt_响应_有效负载_处理程序(用户):
有效载荷=基本有效载荷处理程序(用户)
有效负载['user']=用户\序列化程序(用户)。数据
返回有效载荷

我不确定这是否是一个解决方案,但您在返回jwt\u响应\u有效负载\u处理程序时似乎有输入错误。它应该是return{'token':token'user':user_Serializer(user,context={'request':request})。data}Hehehe代码没有输入错误,一定是我在这里发布问题时发生的。你的有效负载中是否有用户密钥?@ArvindKumar这是我获得的有效负载:{username:“admin”,iat:1596656584,exp:1596658384,用户id:3,原始iat:1596656584}令牌:“EYJ0ExaiIjkv1qiljHbGciioijiuzi1Nij9.EYJ1C2VYBMFtzSi6imfobWkx2FKBWluiIwIjOxNjU2NjU2NjG0LCjLehaiOj1OTY2NtGzOqsInvZjFawQiojMsim9Yawdfaw0IjOxNjOxNtK2…”我希望归还用户的财产是Ƀ工作人员。到目前为止,我的实现是,我已经创建了一个get端点,通过将令牌值发送回我的服务器(/api/get_session),在这里我可以获得所需的属性/