如何拓展jwt返回的数据

默认的返回值仅有token,我们还需在返回值中增加username和id,方便在客户端页面中显示当前登陆用户

通过修改该视图的返回值可以完成我们的需求。

在user/utils.py中,创建

def jwt_response_payload_handler(token, user=None, request=None):
    """
    拓展jwt返回的数据
    :param token: jwt token字符串
    :param user: 当前登录对象 model类模型对象
    :param request: rest_framwork的request对象
    :return:
    """
    自定义jwt认证成功返回数据
    """
    return {
        'token': token,
        'id': user.id,
        'username': user.username
    }

同时还需要在settings.py文件中配置,不然jwt无法找到并使用我们自定义的返回数据

# JWT
JWT_AUTH = {
    'JWT_EXPIRATION_DELTA': datetime.timedelta(days=1),
    # 使用我们自定义的函数返回除了token以外的其它数据
    'JWT_RESPONSE_PAYLOAD_HANDLER': 'users.utils.jwt_response_payload_handler',
}

文档解释

posted @ 2020-09-18 11:06  我在路上回头看  阅读(347)  评论(0)    收藏  举报