如何自定义JWT响应的有效负载部分

时间:2016-10-09 10:57:45

标签: django django-rest-framework jwt

我需要做些什么才能自定义url(r'^auth/login/', obtain_jwt_token)视图以允许我将数据添加到JWT令牌

我有一个独立的Web应用程序使用的django-rest-framework API。我想要的是返回登录用户的角色和权限以及djangorestframework-jwt已经返回的Web应用程序。

我已经在python词典中拥有角色,但我无法弄清楚覆盖默认有效负载所需的内容。

user_payload = {'用户':用户,'角色':角色}

我认为这就像更换用户'一样简单。在payload = jwt_payload_handler(user)中使用我的user_payload,但后来遇到了序列化程序错误。有更清洁/更简单的方法吗?

djangorestframework == 3.4.7,djangorestframework-jwt == 1.8.0

1 个答案:

答案 0 :(得分:2)

<强> JWT_RESPONSE_PAYLOAD_HANDLER 负责控制登录或刷新后返回的响应数据。覆盖以返回自定义响应,例如包括用户的序列化表示。

默认返回JWT令牌。

示例:

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

默认为{'token': token}