Advertisement
Guest User

Untitled

a guest
Dec 12th, 2016
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.31 KB | None | 0 0
  1. class UserAuthenticationView(APIView):
  2. def post(self, request, *args, **kwargs):
  3. serializer = UserAuthenticationSerializer(data=self.request.data)
  4. if serializer.is_valid():
  5. user = serializer.validated_data['user']
  6. return Response({'token': user.auth_token.key}, status=status.HTTP_200_OK)
  7.  
  8. return Response(serializer.errors, status=status.HTTP_401_UNAUTHORIZED)
  9.  
  10. class UserAuthenticationSerializer(serializers.Serializer):
  11. username = serializers.CharField()
  12. password = serializers.CharField()
  13.  
  14. def validate(self, attrs):
  15. username = attrs.get('username')
  16. password = attrs.get('password')
  17.  
  18. if username and password:
  19. user = authenticate(username=username, password=password)
  20. if user:
  21.  
  22. if not user.is_active:
  23. msg = 'User account is disabled.'
  24. raise serializers.ValidationError(msg, code='authorization')
  25.  
  26. else:
  27. msg = 'Unable to log in with provided credentials.'
  28. raise serializers.ValidationError(msg, code='authorization')
  29.  
  30. else:
  31. msg = 'Must include "username" and "password".'
  32. raise serializers.ValidationError(msg, code='authorization')
  33.  
  34. attrs['user'] = user
  35. return attrs
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement