diff options
| author | Rob Romano | 2012-11-12 15:16:53 -0800 |
|---|---|---|
| committer | Rob Romano | 2012-11-14 12:46:14 -0800 |
| commit | ce3ccb91dc2a7aaf8ff41ac24045c558d641839e (patch) | |
| tree | d6631e56c5466462f25896b0ce29a82056c10a6e /rest_framework/authtoken/views.py | |
| parent | bd92db3c672137fa68185dbc0f453f7cea7caff3 (diff) | |
| download | django-rest-framework-ce3ccb91dc2a7aaf8ff41ac24045c558d641839e.tar.bz2 | |
Updates to login view for TokenAuthentication from feedback from Tom
Diffstat (limited to 'rest_framework/authtoken/views.py')
| -rw-r--r-- | rest_framework/authtoken/views.py | 27 |
1 files changed, 15 insertions, 12 deletions
diff --git a/rest_framework/authtoken/views.py b/rest_framework/authtoken/views.py index a52f0a77..e027dff1 100644 --- a/rest_framework/authtoken/views.py +++ b/rest_framework/authtoken/views.py @@ -1,19 +1,22 @@ from rest_framework.views import APIView -from rest_framework.generics import CreateAPIView +from rest_framework import status +from rest_framework import parsers +from rest_framework import renderers +from rest_framework.response import Response from rest_framework.authtoken.models import Token from rest_framework.authtoken.serializers import AuthTokenSerializer -from django.http import HttpResponse -class AuthTokenLoginView(CreateAPIView): +class AuthTokenView(APIView): + throttle_classes = () + permission_classes = () + parser_classes = (parsers.FormParser, parsers.MultiPartParser, parsers.JSONParser,) + renderer_classes = (renderers.JSONRenderer,) model = Token - serializer_class = AuthTokenSerializer - -class AuthTokenLogoutView(APIView): def post(self, request): - if request.user.is_authenticated() and request.auth: - request.auth.delete() - return HttpResponse("logged out") - else: - return HttpResponse("not logged in") - + serializer = AuthTokenSerializer(data=request.DATA) + if serializer.is_valid(): + token, created = Token.objects.get_or_create(user=serializer.object['user']) + return Response({'token': token.key}) + return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST) + |
