Skip to content

Instantly share code, notes, and snippets.

@ravuthz
Created August 18, 2020 15:02
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ravuthz/a21da98c962a7bdcef02dabc90475277 to your computer and use it in GitHub Desktop.
Save ravuthz/a21da98c962a7bdcef02dabc90475277 to your computer and use it in GitHub Desktop.
from django.contrib.auth import login, logout
from rest_framework import viewsets, permissions, status, views
from rest_framework.authtoken.serializers import AuthTokenSerializer
from rest_framework.authtoken.views import ObtainAuthToken
from rest_framework.response import Response
class LoginView(viewsets.ViewSet):
serializer_class = AuthTokenSerializer
permission_classes = [permissions.AllowAny]
def create(self, request):
return ObtainAuthToken().post(request)
class LogoutView(viewsets.ViewSet):
permission_classes = [permissions.AllowAny]
def get(self, request, format=None):
request.user.auth_token.delete()
return Response(status=status.HTTP_200_OK)
class AuthLoginView(views.APIView):
def post(self, request):
serializer = AuthTokenSerializer(data=request.data)
serializer.is_valid(raise_exception=True)
user = serializer.validated_data['user']
login(request, user)
return Response({
'detail': 'Session login successful.'
})
class AuthLogoutView(views.APIView):
def get(self, request):
logout(request)
return Response({
'detail': 'Session logout successful.'
})
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment