diff options
| author | Rob Romano | 2012-11-12 15:16:53 -0800 |
|---|---|---|
| committer | Rob Romano | 2012-11-12 15:16:53 -0800 |
| commit | 8eb37e1f7e879fc53c4550e5f1a545dd755cd07e (patch) | |
| tree | 054979f073495b0f49b9ad98564357c6cf895238 /rest_framework/authtoken/views.py | |
| parent | 063c027c7b4278620fda6cf4aa7825a817748cc0 (diff) | |
| download | django-rest-framework-8eb37e1f7e879fc53c4550e5f1a545dd755cd07e.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) + |
