我有Django Rest Framework和令牌身份验证。我有一个以下网址url(r'^api/auth/', views.obtain_auth_token),
,它会返回令牌。
当用户执行获取令牌的授权时,我需要做的是执行一些数据库逻辑。我需要查询db并在那里做一些事情。
在我看来,我以某种方式覆盖默认行为并向obtain_auth_token
添加一些自定义逻辑。
我该怎么做?
答案 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()