DRF - Невозможно войти в систему с предоставленными учетными данными

Я попытался получить токен от django rest framework.

bigissue@vmi995554:/opt/ftusbrdp/sbin$ http POST http://172.18.0.1:7000/api-token-auth/ username='nicola' password="Password12345"
HTTP/1.1 400 Bad Request
Allow: POST, OPTIONS
Content-Length: 68
Content-Type: application/json
Cross-Origin-Opener-Policy: same-origin
Date: Tue, 29 Nov 2022 14:19:40 GMT
Referrer-Policy: same-origin
Server: WSGIServer/0.2 CPython/3.9.15
X-Content-Type-Options: nosniff
X-Frame-Options: DENY

{
    "non_field_errors": [
        "Unable to log in with provided credentials."
    ]
}

Я создал суперпользователя и обычного пользователя из веб-гуи администратора. Все пользователи активны. Чего мне не хватает? Ниже приведена моя конфигурация. Я импортировал модуль app как rest_framework и rest_framework.authtoken, я установил переменную REST_FRAMEWORK для использования токена. Затем я вызываю методы views.obtain_auth_token для получения строкового токена.

Файл settings.py.

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'appjud',
    'rest_framework',
    'rest_framework.authtoken'
]

REST_FRAMEWORK = {
    'DEFAULT_AUTHENTICATION_CLASSES': (
               'rest_framework.authentication.TokenAuthentication',
    ),
    'DEFAULT_PERMISSION_CLASSES':(
                'rest_framework.permissions.IsAuthenticated',
    ),

}

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'dbjud',
        'USER': 'root',
        'PASSWORD': 'Password19',
        'HOST':'localhost',
        'PORT':'3306',
    }
}

Файл router.py

from appjud.viewsets import userviewsets
from rest_framework import routers
 
router = routers.DefaultRouter()
router.register('user', userviewsets, basename ='user_api')

Файл serialiers.py

class userSerializers(serializers.ModelSerializer):
 
    class Meta:
        model = User
        fields =  '__all__'

Файл viewsets.py

from rest_framework import viewsets
from .serializers import userSerializers
from django.contrib.auth.models import User
 
 
class userviewsets(viewsets.ModelViewSet):
    queryset = User.objects.all()
    serializer_class = userSerializers

Файл urls.py

from django.contrib import admin
from django.urls import path, include, re_path
from unimiproject.router import router
from rest_framework.authtoken import views

urlpatterns = [
    path('admin/', admin.site.urls),
    path('api-auth/', include('rest_framework.urls')),
    re_path(r"^appjud/",include("appjud.urls")),
    path('api/', include(router.urls)),
    path('api-token-auth/', views.obtain_auth_token, name='api-token-auth'),

]
Вернуться на верх