DRF - 扩展获取身份验证令牌

时间:2016-10-20 20:55:56

标签: django django-rest-framework

我有Django Rest Framework和令牌身份验证。我有一个以下网址url(r'^api/auth/', views.obtain_auth_token),,它会返回令牌。

当用户执行获取令牌的授权时,我需要做的是执行一些数据库逻辑。我需要查询db并在那里做一些事情。

在我看来,我以某种方式覆盖默认行为并向obtain_auth_token添加一些自定义逻辑。

我该怎么做?

1 个答案:

答案 0 :(得分:1)

Rest Framework中的ObtainAuthToken为特定用户获取或创建一个令牌,然后在Response中发送它,所有这些行为都是在post方法中完成的。

文档说:

  

如果您需要自定义版本的obtain_auth_token视图,可以通过覆盖ObtainAuthToken视图类并在您的url conf中使用它来实现。

因此,您可以覆盖post方法,甚至可以创建自己的APIView来创建令牌并添加所需的行为。为此,请更改您的网址:

url(r'^api/auth/', views.custom_obtain_token)

在views.py中:

class CustomObtainToken(APIView):
    ...
    def post(self, request):
        <your logic>
        <get token n your own way or using DRF way>
        return Response({'token': token})
custom_obtain_token = CustomObtainToken.as_view()