Django TokenAuthentication - 扩展JWT obtain_jwt_token

时间:2017-02-21 20:28:29

标签: django django-rest-framework-jwt

我有一个由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. 如果身份验证成功,请执行一些其他操作并将令牌返回给用户。
  3. 我感到迷失在与身份验证类相关的所有Django架构的丛林中。我是否正确理解如果我使用像Django JWT这样的第三方软件包,我对登录过程没有任何作用,并且在用户登录后无法执行其他操作?如果我想在登录过程中拥有更多权力,我必须完成Django JWT开发人员从头开始做的所有工作?我可以以某种方式添加一些操作 ON TOP 的Django JWT' obtain_jwt_token

1 个答案:

答案 0 :(得分:2)

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

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