2017-02-21 71 views
0

我有一个Django的REST的应用程序和令牌认证搭载Django REST framework JWT AuthDjango的TokenAuthentication - 延长JWT obtain_jwt_token

让我制定我的高层次的目标:

我的目标是产生一个令牌,如果他的用户提供正确的凭证,然后在成功登录后立即执行一些额外的操作。为了简单起见,假设我想在控制台上输出“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开发人员从头开始的所有工作?我可以以某种方式添加一些操作ON TOP Django智威汤逊obtain_jwt_token

回答

1

obtain_jwt_token仅仅是一个视图的引用,并与任何视图你可以继承它,并且代替

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

@EdgarNavasardyan参考 - 他们的'JSONWebTokenAPIView'依然采用的是['POST'](HTTPS ://github.com/GetBlimp/django-rest-framework-jwt/blob/master/rest_framework_jwt/views.py#L53)方法,所以只需调用超级,让他们做他们的事情,然后根据需要扩展 – Sayse

+1

您提出我的一天 –