aboutsummaryrefslogtreecommitdiffstats
path: root/rest_framework/authtoken/views.py
diff options
context:
space:
mode:
authorRob Romano2012-11-12 15:16:53 -0800
committerRob Romano2012-11-14 12:46:14 -0800
commitce3ccb91dc2a7aaf8ff41ac24045c558d641839e (patch)
treed6631e56c5466462f25896b0ce29a82056c10a6e /rest_framework/authtoken/views.py
parentbd92db3c672137fa68185dbc0f453f7cea7caff3 (diff)
downloaddjango-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.py27
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)
+