Django 注销后销毁令牌

Django 注销后销毁令牌,django,python-3.x,django-rest-framework,Django,Python 3.x,Django Rest Framework,我想在用户注销时销毁身份验证令牌。用户在我提供的视图中成功注销。但当用户注销时,我需要销毁令牌 views.py 你可以这样做 class UserLoginViewSet(viewsets.ViewSet): def create(self,request): try: data=request.data email=data.get('email') password=data.get('pa

我想在用户注销时销毁身份验证令牌。用户在我提供的视图中成功注销。但当用户注销时,我需要销毁令牌

views.py
你可以这样做

class UserLoginViewSet(viewsets.ViewSet):

    def create(self,request):
        try:
            data=request.data
            email=data.get('email')
            password=data.get('password')
            date_of_birth=data.get('date_of_birth')
            if not all([email,password,date_of_birth]):
                raise Exception('all fields are mandetory')

            user=authenticate(username=email,password=password)

            if user is not None:
                token=generate_token()
                user_info=MyUser.objects.get(email=email)
                data=({
                    'email':user_info.email,
                    'password':user_info.password,
                    #'data_of_birth':user_info.data_of_birth
                })
                return Response({"message": "You are successfully logged in",
                "user_info":data,"token": token, "success": True},status=status.HTTP_200_OK)

            else :
                raise Exception('not authorised')

        except Exception as error:
            traceback.print_exc()
            return Response({"message": str(error), "success": False}, status=status.HTTP_200_OK)

class LogoutView(APIView):
    permission_classes = (permissions.IsAuthenticated,)

    def get(self, request):
        request.user.auth_token.delete()
        logout(request)
        return Response({"message": "success", 'code': status.HTTP_200_OK, 'detail': "logout success"}) 
应用内url.py添加新url:

path('logout/',LogoutView.as_view()),

您使用的是哪种代币?JWT?我使用的是Outh2,您使用的是django oauth toolkit和承载令牌吗?但是您需要传递身份令牌来获取logoutlass LogoutViewSet(ViewSet.ViewSet):permission\u classes=(permissions.IsAuthenticated,)def get(self,request):request.user.auth\u token.delete()注销(request)返回响应({“message:“success”,“code”:status.HTTP_200_OK,'detail':“logout success”})router.register(r'logout',LogoutViewSet,basename='UserEmailViewSet')#my urlsfrom rest#framework从trument.views导入路由器从django.conf.url导入url路由器=路由器.DefaultRouter()路由器.register(r'test',UserViewSet,basename='UserViewSet')路由器。注册(r'login',UserLoginViewSet,basename='UserLoginViewSet')路由器。注册(r'email',OrderViewSet,basename='UserEmailViewSet')路由器。注册(r'logout',LogoutViewSet,basename='UserEmailViewSet')路由器。注册(r'order',OrderViewSet,basename='OrderViewSet')urlpatterns=router.urlsdon在注销时不使用router.register。从router.register中删除注销视图并添加我提供的url
path('logout/',LogoutView.as_view()),