#python #django #django-rest-framework
Вопрос:
я использую платформу Django rest для своего API входа в систему. Теперь я хочу войти только в определенную группу пользователей через api. Я создал группу и назначил в нее пользователя.Я создал класс разрешений и использовал для просмотра, но он показывает «»Учетные данные для аутентификации не были предоставлены».
Вот мои разрешения.класс py
from rest_framework.permissions import BasePermission
class FanOnlyPermission(BasePermission):
def has_permission(self, request, view):
if request.user and request.user.groups.filter(name='fan'):
return True
return False
Вот мой view.py
from rest_framework import views, permissions, status, generics
class UserLoginApiView(generics.GenericAPIView):
"""
User Login Api View
"""
permission_classes = (FanOnlyPermission, )
def post(self, request):
"""
Handle POST request
:param request:
:return:
"""
serializer = UserLoginSerializer(data=request.data)
if serializer.is_valid(raise_exception=True):
return Response(serializer.data, status=status.HTTP_200_OK)
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
Я пытался связаться с почтальоном. когда я печатаю запрос.пользователь из permission.py это был «Анонимный пользователь».
Комментарии:
1. Какой тип аутентификации вы используете ? Вы установили переменные аутентификации rest в файле настроек ?
2. Вот мой setting.py REST_FRAMEWORK = { ‘КЛАССЫ ПРОВЕРКИ ПОДЛИННОСТИ ПО УМОЛЧАНИЮ’: ( ‘rest_framework.аутентификация. Проверка подлинности сеанса», «rest_framework.аутентификация. Проверка подлинности», ), «КЛАССЫ ПО УМОЛЧАНИЮ»: («rest_framework.разрешения. IsAuthenticated’, ), } на самом деле я хочу аутентификацию, где api входа проверяет только группу. если пользователь существует в группе, то для входа в систему другим способом будет показано, что в разрешении отказано.