【问题标题】:Access token from view从视图访问令牌
【发布时间】:2015-10-27 02:40:25
【问题描述】:

我从 django-rest-framework 开始,我找不到从视图中访问 Token 值的方法,这可能吗?我没有使用内置令牌生成器,而是使用自定义函数来完成。在请求的标题中,我给出了这个:

Authorization: 'Token kjansfd98qhr23d09823098fdj'

如何在视图中访问该值?或者也许有一种使用自定义令牌的最佳方式。

PD:我没有使用 Django 的默认用户模型。

【问题讨论】:

  • 您是否只需要访问该值或执行令牌身份验证,因为令牌身份验证类会自动为您处理。

标签: django django-rest-framework access-token


【解决方案1】:

您可以从request.auth 属性中获取令牌。它返回一个 DRF 令牌实例。如果您只需要密钥,则可以使用 request.auth.key 属性访问它。

参考:

【讨论】:

    【解决方案2】:

    您可以使用字典 request.META 在视图中访问它们。 所以你可以使用 request.META.get('HTTP_AUTHORIZATION') 来访问 autherizatoin 令牌。

    更多详情请访问Django TokenAuthentication missing the 'Authorization' http header

    如果您要部署到 Apache,并使用任何基于非会话的身份验证,则需要显式配置 mod_wsgi 以将所需的标头传递给应用程序。这可以通过在适当的上下文中指定 WSGIPassAuthorization 指令并将其设置为“开”来完成。详情请访问http://www.django-rest-framework.org/api-guide/authentication/

    【讨论】:

    • 你能告诉我 DRF 在这种情况下是如何进行令牌验证的吗?
    • 你想在你的自定义用户模型上实现令牌认证吗?
    • 是的,我有 2 个模型来代表 PartnerClient 用户,但它们都不是从默认 Django 的 User 模型扩展而来的。我还有一个AuthToken 模型来存储我生成的令牌。在这种情况下是否可以实现一些内置的令牌认证?
    • 我做到了,但我不清楚这一点:如何总是为 auth 值返回 None? -> return (user, None)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-31
    • 1970-01-01
    • 2012-04-22
    • 2019-11-11
    相关资源
    最近更新 更多