title: DRF auth_token: "non_field_errors": [ "Unable to log in with provided credentials."
body: <p>Both JWT packages written for Django gave me issues with poor documentation, so I try DRF-auth_token package. This is a good example I followed, <a href="https://stackoverflow.com/questions/14838128/django-rest-framework-token-authentication">Django Rest Framework Token Authentication</a>. You should in theory be able to go to </p>
  
  <p><code>localhost:8000/api-token-auth/</code></p>
  
  <p>urls.py:</p>
  
  <pre><code>from django.conf.urls import url, include
  from django.contrib import admin
  from django.contrib.auth.models import User
  from rest_framework.authtoken import views
  
  urlpatterns = [
      url(r'^admin/', admin.site.urls),
      url(r'^api/', include('api.urls', namespace='api')),
      url(r'^orders/', include('orders.urls', namespace='orders')),
      url(r'^api-token-auth/', views.obtain_auth_token, name='auth-token'),
  
  ]
  </code></pre>
  
  <p>Getting a token for users is not working so I have rewritten it myself to make it work:</p>
  
  <pre><code>@api_view(['POST'])
  def customer_login(request):
      """
      Try to login a customer (food orderer)
      """
      data = request.data
  
      try:
          username = data['username']
          password = data['password']
      except:
          return Response(status=status.HTTP_400_BAD_REQUEST)
  
      try:
          user = User.objects.get(username=username, password=password)
      except:
          return Response(status=status.HTTP_401_UNAUTHORIZED)
  
      try:
          user_token = user.auth_token.key
      except:
          user_token = Token.objects.create(user=user)
  
      data = {'token': user_token}
      return Response(data=data, status=status.HTTP_200_OK)
  </code></pre>
  
  <p>My version works:</p>
  
  <pre><code>http://localhost:8000/api/login/customer-login/
  {"username": "thisguy@example.com", "password": "wombat"}
  --&gt;
  {
    "token": "292192b101153b7ced74dd52deb6b3df22ef2c74"
  }
  </code></pre>
  
  <p>The DRF auth_token does not work:</p>
  
  <pre><code>http://localhost:8000/api-token-auth/
  {"username": "thisguy@example.com", "password": "wombat"}
  --&gt;
  {
    "non_field_errors": [
      "Unable to log in with provided credentials."
    ]
  }
  </code></pre>
  
  <p>settings.py</p>
  
  <pre><code>INSTALLED_APPS = [
      'django.contrib.admin',
      'django.contrib.auth',
      'django.contrib.contenttypes',
      'django.contrib.sessions',
      'django.contrib.messages',
      'django.contrib.staticfiles',
  
      # third party:
      'django_extensions',
      'rest_framework',
      'rest_framework.authtoken',
  
  
  
  REST_FRAMEWORK = {
      'DEFAULT_PERMISSION_CLASSES': (
          'rest_framework.permissions.IsAuthenticated',
      ),
      'DEFAULT_AUTHENTICATION_CLASSES': (
          'rest_framework.authentication.TokenAuthentication',
      )
  }
  </code></pre>
  
  <p>It seems set up correctly. Every user in my DB has a token. Each user is <code>is_authenticated</code> and <code>is_active</code> in DB. Super users can get their token:</p>
  
  <pre><code>localhost:8000/api-token-auth/
  {"username": "mysuperuser", "password": "superuserpassword"}
  --&gt;
  {
    "token": "9297ff1f44dbc6caea67bea534f6f7590d2161b0"
  }
  </code></pre>
  
  <p>for some reason, only super user can get a token:</p>
  
  <pre><code>localhost:8000/api-token-auth/
  {"username": "regularguy", "password": "password"}
  --&gt;
  {
    "non_field_errors": [
      "Unable to log in with provided credentials."
    ]
  }
  </code></pre>
  
  <p>Why can't my users log in and get their token? Thank you</p>