У меня есть вход AJAX
в моем проекте Django. Ajax_login view
получает POST, аутентифицирует пользователя и возвращает JsonResponse
. Кажется, что все работает правильно, но пользователь фактически не вошел в систему.Django действует как пользователь, но не
Странно то, что в представлении я проверяю, вошел ли пользователь в систему, и они есть.
VIEW
@csrf_exempt
def ajax_login_(request):
username = request.POST.get('username')
password = request.POST.get('password')
user = authenticate(username=username,password=password)
if user:
if user.is_authenticated():
print 'IS LOGGED IN' #THIS IS BEING PRINTED INTO CONSOLE SO USER IS LOGGED IN
return JsonResponse({'status':0})
return JsonResponse({'status':1})
AJAX
$(document).ready(function() {
$('.login-form').find('.submitButton').click(function (e) {
var next = $(this).closest('.login-form').find('input[name="next"]').val();
var password = $(this).closest('.login-form').find('#id_password').val();
var username =$(this).closest('.login-form').find('#id_username').val();
e.preventDefault();
var errors = 0;
if (username == '') {
$('#id_username_required').show();
errors += 1;
} else {
$('#id_username_required').hide();
}
if (password == '') {
$('#id_password_required').show();
errors += 1;
} else {
$('#id_password_required').hide();
}
if (errors == 0) {
$.ajax({
url: '/ajax/login/',
type: 'post',
data: {
'password': password,
'username': username,
},
success: function (data) {
if (data.status == 0) {
window.location.reload();
} else {
$('.login-modal-credentials-incorrect').show();
return false;
}
}
});
}
})
});
не могу понять, где проблема. Он внезапно прекратил работать.
Вы отлаживали свой JS в браузере, чтобы увидеть, какой ответ вы фактически получаете? –
Да, он возвращает статус: 0, что хорошо. –
Что возвращает функция authenticate()? – FeedTheWeb