Аутентифицированный пользователь Django вошел как анонимный пользователь - PullRequest
0 голосов
/ 03 мая 2019

В моем представлении Django я проверяю подлинность и авторизирую пользователя.Однако, когда я проверяю, аутентифицирован ли пользователь в другом представлении с помощью request.user.is_anonymous, он анонимный.

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

@csrf_exempt
def LoginView(request):
    if request.method == 'POST':
        form = LoginForm(request.POST)
        if form.is_valid():
            username = form.cleaned_data['username']
            password = form.cleaned_data['password']
            user = authenticate(request, username=username, password=password)
            if user is not None and user.is_active:
                login(request, user)
                return JsonResponse({'logged_in' : 'yes'})
        return JsonResponse({'logged_in' : 'no'})

Я получаю ответ JSON logged_in: yes в браузере, поэтому пользователь проходит проверку подлинности, но действует как анонимный зарегистрированный пользователь.

Вот код, который я использовал для проверки, является ли пользователь анонимным

@csrf_exempt
def ProfileView(request):

    if request.method == 'GET':
        if request.user.is_authenticated:
            username = request.user.username
        else:
            username = request.user.is_anonymous

        try:
            user = Profile.objects.get(username=username)
            name = user.name
            age = user.age
            return JsonResponse({'name' : name, 'age' : age})
        except ObjectDoesNotExist:
            return JsonResponse({'error' : username})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...