我正在使用DRF允许我的移动应用程序的用户对我的Web应用程序进行身份验证。检测第一次用户使用Django Rest Framework进行身份验证
我想在用户第一次使用客户端“登录”时创建与此用户关联的模型实例。
我使用的DRF基于令牌的认证,为我/ API /认证/端点我指着url(r'^authenticate/', restviews.obtain_auth_token),
好像来处理这一点的最好办法是重写ObtainAuthToken(APIView) ,通过将此类添加到我的api/views.py中。这个类看起来是这样的:
class ObtainAuthTokenCustomized(APIView):
throttle_classes =()
permission_classes =()
parser_classes = (parsers.FormParser, parsers.MultiPartParser, parsers.JSONParser,)
renderer_classes = (renderers.JSONRenderer,)
serializer_class = AuthTokenSerializer
def post(self, request, *args, **kwargs):
serializer = self.serializer_class(data=request.data)
serializer.is_valid(raise_exception=True)
user = serializer.validated_data['user']
token, created = Token.objects.get_or_create(user=user)
return Response({'token': token.key})
obtain_auth_token = ObtainAuthTokenCustomized.as_view()
它看起来像我将要插入到get_or_create对于是否令牌已为此用户先前创建之前的测试。如果是这样,请执行我计划的模型实例创建。
这是否有更好的方法来处理这个问题?