403 «подробно»: «Учетные данные для аутентификации не предоставлены». ⇐ Python
403 «подробно»: «Учетные данные для аутентификации не предоставлены».
У меня задание создать проект API. Мне нужно создать:
Конечная точка: /api/users/users/me/
Роль: Любой, у кого есть действительный токен пользователя
Метод: ПОЛУЧИТЬ Цель: отображает только текущего пользователя
При тестировании конечной точки API Insomnia и Curl возвращают один и тот же ответ:
403 «detail»: «Учетные данные для аутентификации не предоставлены».
Пожалуйста, помогите!
Я пробовал два метода:
Джосер:
Используя Djoser, мне удалось создать пользователя и сгенерировать токен аутентификации. Я также вручную создал токен в панели администратора Django для нескольких пользователей, включая суперпользователя. Я отправил запрос Get на конечную точку Djoser http://127.0.0.1:8000/auth/users/me/, используя Insomnia и Curl. В Insomnia я выбрал токен на предъявителя и ввел действительный токен.
Пользовательский вид: Конечная точка: /api/users/users/me/
Я создал собственное представление, но ответ все тот же.
Settings.py (скопированная часть файла настроек)
INSTALLED_APPS = [ 'django.contrib.admin', 'джанго.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', «ЛитлЛемонAPI», 'rest_framework', 'джосер', 'rest_framework.authtoken', ] ПРОМЕЖУТОЧНОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ = [ 'django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', ] ДЖОСЕР = { "USER_ID_FIELD" :"имя пользователя" } REST_FRAMEWORK = { 'DEFAULT_RENDERER_CLASSES': [ 'rest_framework.renderers.JSONRenderer', 'rest_framework.renderers.BrowsableAPIRenderer', ], 'DEFAULT_AUTHENTICATION_CLASSES': ( 'rest_framework.authentication.TokenAuthentication', 'rest_framework.authentication.SessionAuthentication', ), 'DEFAULT_PERMISSION_CLASSES': [ 'rest_framework.permissions.IsAuthenticated', 'rest_framework.permissions.DjangoModelPermissions', ], } urls.py уровня проекта
от администратора импорта django.contrib из пути импорта django.urls включите URL-паттерны = [ путь('admin/', admin.site.urls), путь('api/', include('LittleLemonAPI.urls')), путь('auth/', include('djoser.urls')), путь('auth/', include('djoser.urls.authtoken')), ] Views.py
из рендеринга импорта django.shortcuts из django.contrib.auth.models импортировать пользователя из дженериков импорта rest_framework, разрешения из .serializers импортировать CurrentUserSerializer класс CurrentUserView(generics.RetriveAPIView): Permission_classes = [permissions.IsAuthenticated] сериализатор_класс = Текущийсерийный_пользователь защита get_object (сам): # Возвращаем текущий экземпляр пользователя вернуть self.request.user urls.py уровня приложения
из пути импорта django.urls из .views импортировать CurrentUserView URL-паттерны = [ path('users/users/me/', CurrentUserView.as_view(), name='current-user'), ] serializers.py
rom django.contrib.auth.models импортировать пользователя из сериализаторов импорта rest_framework класс CurrentUserSerializer(serializers.ModelSerializer): класс Мета: модель = Пользователь поля = ('id', 'имя пользователя', 'электронная почта')
У меня задание создать проект API. Мне нужно создать:
Конечная точка: /api/users/users/me/
Роль: Любой, у кого есть действительный токен пользователя
Метод: ПОЛУЧИТЬ Цель: отображает только текущего пользователя
При тестировании конечной точки API Insomnia и Curl возвращают один и тот же ответ:
403 «detail»: «Учетные данные для аутентификации не предоставлены».
Пожалуйста, помогите!
Я пробовал два метода:
Джосер:
Используя Djoser, мне удалось создать пользователя и сгенерировать токен аутентификации. Я также вручную создал токен в панели администратора Django для нескольких пользователей, включая суперпользователя. Я отправил запрос Get на конечную точку Djoser http://127.0.0.1:8000/auth/users/me/, используя Insomnia и Curl. В Insomnia я выбрал токен на предъявителя и ввел действительный токен.
Пользовательский вид: Конечная точка: /api/users/users/me/
Я создал собственное представление, но ответ все тот же.
Settings.py (скопированная часть файла настроек)
INSTALLED_APPS = [ 'django.contrib.admin', 'джанго.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', «ЛитлЛемонAPI», 'rest_framework', 'джосер', 'rest_framework.authtoken', ] ПРОМЕЖУТОЧНОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ = [ 'django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', ] ДЖОСЕР = { "USER_ID_FIELD" :"имя пользователя" } REST_FRAMEWORK = { 'DEFAULT_RENDERER_CLASSES': [ 'rest_framework.renderers.JSONRenderer', 'rest_framework.renderers.BrowsableAPIRenderer', ], 'DEFAULT_AUTHENTICATION_CLASSES': ( 'rest_framework.authentication.TokenAuthentication', 'rest_framework.authentication.SessionAuthentication', ), 'DEFAULT_PERMISSION_CLASSES': [ 'rest_framework.permissions.IsAuthenticated', 'rest_framework.permissions.DjangoModelPermissions', ], } urls.py уровня проекта
от администратора импорта django.contrib из пути импорта django.urls включите URL-паттерны = [ путь('admin/', admin.site.urls), путь('api/', include('LittleLemonAPI.urls')), путь('auth/', include('djoser.urls')), путь('auth/', include('djoser.urls.authtoken')), ] Views.py
из рендеринга импорта django.shortcuts из django.contrib.auth.models импортировать пользователя из дженериков импорта rest_framework, разрешения из .serializers импортировать CurrentUserSerializer класс CurrentUserView(generics.RetriveAPIView): Permission_classes = [permissions.IsAuthenticated] сериализатор_класс = Текущийсерийный_пользователь защита get_object (сам): # Возвращаем текущий экземпляр пользователя вернуть self.request.user urls.py уровня приложения
из пути импорта django.urls из .views импортировать CurrentUserView URL-паттерны = [ path('users/users/me/', CurrentUserView.as_view(), name='current-user'), ] serializers.py
rom django.contrib.auth.models импортировать пользователя из сериализаторов импорта rest_framework класс CurrentUserSerializer(serializers.ModelSerializer): класс Мета: модель = Пользователь поля = ('id', 'имя пользователя', 'электронная почта')
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Django Login API «учетные данные аутентификации не были предоставлены».
Anonymous » » в форуме Python - 0 Ответы
- 27 Просмотры
-
Последнее сообщение Anonymous
-
-
-
В Springboot я пытаюсь создать API Login, но API возвращает 403 даже учетные данные правы
Anonymous » » в форуме JAVA - 0 Ответы
- 9 Просмотры
-
Последнее сообщение Anonymous
-