django 2 自定义 jwt_get_username_from_payload_handler

Posted

技术标签:

【中文标题】django 2 自定义 jwt_get_username_from_payload_handler【英文标题】:django 2 custom jwt_get_username_from_payload_handler 【发布时间】:2018-10-04 06:32:47 【问题描述】:

为了在 django 中验证 auth0 的 jwt 令牌,我在 settings.py 中使用了以下代码

def jwt_get_username_from_payload_handler(payload):

    return 'authuser'

JWT_AUTH = 
    'JWT_PAYLOAD_GET_USERNAME_HANDLER': jwt_get_username_from_payload_handler,
    'JWT_PUBLIC_KEY': PUBLIC_KEY,
    'JWT_ALGORITHM': 'RS256',
    'JWT_AUDIENCE': API_IDENTIFIER,
    'JWT_ISSUER': JWT_ISSUER,
    'JWT_AUTH_HEADER_PREFIX': 'Bearer',

其中 authuser 是用户名。所以我不想直接写它,而是想在请求标头中接收它并传递它。请帮助我以这种方式自定义此功能 - jwt_get_username_from_payload_handler。 TIA

【问题讨论】:

【参考方案1】:
def jwt_get_username_from_payload_handler(user):

    return 
        'username': user.username,
        'email': user.email,
        'is_superuser': user.is_superuser,
    

你可以使用这个功能

【讨论】:

有没有办法在 mongodb 中不使用 sqlite 来做同样的事情 你会把这个函数放在哪里?

以上是关于django 2 自定义 jwt_get_username_from_payload_handler的主要内容,如果未能解决你的问题,请参考以下文章

Django-tables2 - 如何在 TemplateColumn 中使用自定义过滤器

Django:自定义对象 json 序列化

19 Django中间件

自定义路由组件,Django的admin后台管理,DRF的三大认证,jwt认证

Django - 自定义 ModelMultipleChoiceField 无法根据父模型对选择进行分类

Django的自定义标签