title: Replacing Basic Auth in Django Rest Framework
body: <p>I currently have Django basic auth setup with Knox token authentication. Basic Auth doesn't seem sufficient for production work, so I want to replace that. Does Django have another password-based <code>authentication_class</code> that I can easily replace <code>BasicAuthentication</code> with, or is this a more involved process? If so, where do I start?</p>
  
  <p>my login api view:</p>
  
  <pre><code>class UserLoginView(GenericAPIView):
    serializer_class = UserOrganizationSerializer
    authentication_classes = (BasicAuthentication,)
    permission_classes = (IsAuthenticated,)
  
    def post(self, request):
        """User login with username and password."""
        token = AuthToken.objects.create(request.user)
        return Response({
          'user': self.get_serializer(request.user).data,
          'token': token
        })
  </code></pre>
  
  <p>my default authentication classes:</p>
  
  <pre><code>REST_FRAMEWORK = {
  'DEFAULT_PERMISSION_CLASSES': [],
  'DEFAULT_AUTHENTICATION_CLASSES': [
      'rest_framework.authentication.SessionAuthentication',
      'rest_framework.authentication.BasicAuthentication',
  ],
  </code></pre>