Учетные данные аутентификации не были предоставлены - Django - PullRequest
0 голосов
/ 17 января 2019

У меня проблемы с этой ошибкой. Перепробовал почти все доступные решения, но ничего не помогало На внешней стороне я использую Angular 6, и я уверен, что это не ошибка. Надеемся на скорый ответ и заранее спасибо, ребята.

регистр / url.py

from django.urls import path, include
from rest_framework import routers
from . import views
from rest_framework.authtoken.views import ObtainAuthToken


router = routers.DefaultRouter()
router.register('users', views.UserViewSet)


# Wire up our API using automatic URL routing.
# Additionally, we include login URLs for the browsable API.
urlpatterns = [
    path('', include(router.urls)),
    #path('auth/', include('rest_framework.urls', namespace='rest_framework')),
    path('auth/', ObtainAuthToken.as_view()),
]

serialier.py

from django.contrib.auth.models import User
from rest_framework import serializers


class UserSerializer(serializers.HyperlinkedModelSerializer):
    class Meta:
        model = User
        fields = ('id', 'username', 'email', 'password')
        extra_kwargs = { 'password' : { 'write_only' : True , 'required':True } }

    def create(self, validated_data):
        user = User.objects.create_user(**validated_data)
        return user

view.py

from django.contrib.auth.models import User
from rest_framework import viewsets
from .serializers import UserSerializer
from rest_framework.permissions import IsAuthenticated



class UserViewSet(viewsets.ModelViewSet):
    """
    API endpoint that allows users to be viewed or edited.
    """
    queryset = User.objects.all().order_by('-date_joined')
    serializer_class = UserSerializer
    authentication_classes = (TokenAuthentication, SessionAuthentication, BasicAuthentication)
    permission_classes = (IsAuthenticated,)

setting.py

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

В консоли браузера отображается следующая ошибка:

{«detail»: «Учетные данные для аутентификации не предоставлены».}

1 Ответ

0 голосов
/ 17 января 2019

Ваш просмотр имеет класс разрешений IsAuthenticated. Другими словами, пользователь должен пройти аутентификацию, чтобы получить, обновить или даже создать экземпляр. Убедитесь, что соответствующие заголовки включены в ваши запросы.

Например, для аутентификации токена, как указано Документация Django Rest Framework

Для аутентификации клиентов ключ токена должен быть включен в HTTP-заголовок авторизации. Ключ должен иметь префикс строкового литерала «Токен», с пробелами, разделяющими две строки. Например:

Authorization: Token 9944b09199c62bcf9418ad846dd0e4bbdfc6ee4b

В конкретном случае создания учетной записи я не уверен, что она предназначена для того, чтобы ваше приложение требовало аутентификации пользователя.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...