Django TokenAuthentication - 扩展 JWT obtain_jwt_token

Django TokenAuthentication - extending JWT obtain_jwt_token

我有一个 Django REST 应用程序和由 Django REST framework JWT Auth

提供支持的令牌身份验证

让我制定我的高级目标:

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

现在我的代码如下所示:

from rest_framework_jwt.views import obtain_jwt_token

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

我要做的是下面的

  1. 获取obtain_jwt_token生成的令牌
  2. 如果身份验证成功,请执行一些额外操作并将令牌 return 提供给用户。

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

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

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