【问题标题】:Django TokenAuthentication - extending JWT obtain_jwt_tokenDjango TokenAuthentication - 扩展 JWT 获取_jwt_token
【发布时间】:2017-07-11 15:58:50
【问题描述】:

我有一个由Django REST framework JWT Auth 提供支持的 Django REST 应用和令牌身份验证

让我制定我的高级目标:

如果用户提供正确的凭据,我的目标是为用户生成一个令牌,然后在成功登录后立即执行一些额外的操作。为简单起见,假设我想将“Hello”打印到控制台。

现在我的代码如下所示:

from rest_framework_jwt.views import obtain_jwt_token

urlpatterns = [
    url(r'^api-token-auth/', obtain_jwt_token),
]

我想做的是以下

  1. 获取obtain_jwt_token生成的令牌
  2. 如果身份验证成功,请执行一些附加操作并将令牌返回给用户。

我迷失在所有与身份验证类相关的 Django 架构的丛林中。我是否理解正确,如果我使用 Django JWT 之类的第三方包,我的登录过程没有电源,并且在用户登录后无法执行其他操作?如果我想在登录过程中拥有更多权力,我必须完成 Django JWT 开发人员从头开始完成的所有工作吗?我可以以某种方式添加 Django JWT 的 obtain_jwt_token 的一些操作 ON TOP 吗?

【问题讨论】:

    标签: django django-rest-framework-jwt


    【解决方案1】:

    obtain_jwt_token 只是对视图的引用,与任何视图一样,您可以将其子类化并引用它

    class MySpecialJWT(ObtainJSONWebToken):
        def post(self, request, *args, **kwargs):
            response = super().post(request, *args, **kwargs)
            # foo bar
            return response
    

    【讨论】:

    • @EdgarNavasardyan - 他们的 JSONWebTokenAPIView 仍然使用 post 方法,所以只需调用 super 让他们做他们的事情,然后根据需要扩展
    • 你成就了我的一天
    猜你喜欢
    • 2017-07-05
    • 1970-01-01
    • 1970-01-01
    • 2018-10-28
    • 1970-01-01
    • 1970-01-01
    • 2020-07-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多