Django身份验证用户以匿名用户身份登录

时间:2019-05-03 14:59:52

标签: python jquery django

在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响应logging_in:是,因此该用户已通过身份验证,但充当匿名登录用户。

这是我用来测试用户是否匿名的代码

@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})

0 个答案:

没有答案