Реализация аутентификации сеанса в django rest framework? - PullRequest
0 голосов
/ 22 января 2020

Я пытаюсь реализовать сеансовую аутентификацию в drf. Я ничего не понял из документации django сессии, а также из документации drf. Я хочу иметь конечную точку API для входа в систему, выхода из системы и одну для перечисления всех пользователей.

class Login(APIView):

def post(self, request, format=None):
    email = request.POST.get("email", "")
    print(request.session)
    password = request.POST.get("password", "")
    user = authenticate(request,username=email,password=password)
    if user is not None:
        login(request,user)
        print(user)
        return Response('yes')
    else :
        return Response('No')


class UserList(APIView):
authentication_classes = (SessionAuthentication,)
permission_classes = [
    IsAuthenticated,
    ]


def get(self, request, format=None):

    user = User.objects.all()
    print(request.user)
    serializer = UserSerializer(user, many=True)

    return Response(serializer.data)

Settings.py

MIDDLEWARE = [
'corsheaders.middleware.CorsMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
]

Я пытался вызвать API входа в систему из браузера. Да, это вошло в систему. Теперь, когда я пытаюсь вызвать просмотр списка пользователей, я получаю данные аутентификации, не предоставленные. сеансы в дрф.

...