[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Авторизация с помощью cURL на сайте с AJAX + JSON
Denis_44
Доброго времени суток всем. Несколько дней бьюсь над задачей. "Загорелся" я идей автоматизировать некоторые процессы на сайте, но не могу пройти авторизацию через cURL, и самое обидное, как сделать все остальное, что задумано, я знаю.
Принцип авторизации двухступенчатый, сначала идет запрос по AJAX с использованием JSON, который отдает временный адрес и "перерисовывает" окно в браузере, затем в ссылку вписывается этот временный адрес и заходишь в закрытый контент.
JS скрипт авторизации:

function do_login () {
$.ajax({
url : '/5/25.npl',
data: {
'l': $('#uname').val(),
'p': $('#upass').val(),
's': $('#usms').val()
},
success: function (data) {
if (handleState(data)) {
$('#message').modal({
escClose: false,
onClose: function () {
window.location.href = data[43];
}
});
$('#read_message').click(function () {
window.location.href = data[43];
});
} else {
if (data[8] == 1006) {
message('На Ваш номер: ' + data[23] + ' выслан код подтверждения входа');
$('#sms_code').show().focus();
}
else if (data[8] == 1008) { // СМС уже отправлена
error(data[23]);
$('#sms_code').show().focus();
}
else {
error(data[23]);
}
}
}
});
return false;
}

Заголовок:
(Request-Line) POST /5/25.npl HTTP/1.1
Host 2012.sergey-mavrodi.com
User-Agent Mozilla/5.0 (Windows NT 5.1; rv:15.0) Gecko/20100101 Firefox/15.0.1
Accept application/json, text/javascript, */*; q=0.01
Accept-Language ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding gzip, deflate
Connection keep-alive
Content-Type application/x-www-form-urlencoded; charset=UTF-8
X-Requested-With XMLHttpRequest
Referer https://2012.sergey-mavrodi.com/
Content-Length 48
Cookie NA=ssJgeo5f5q; NINJA_LOGIN=user%40mail.ru; banner_top_nom=2; st_do=1; __utma=189823657.1583370256.1349921724.1349921724.1349921724.1; __utmz=189823657.1349921724.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); NS=s0c5qvcnffjcsmp2mae019rl81
Pragma no-cache
Cache-Control no-cache

При вызове в браузере https://2012.sergey-mavrodi.com/5/25.npl и https://2012.sergey-mavrodi.com/5/25.npl?l=...u&p=12345678&s=
{"8":400,"23":"Ninja programming language is not supported your request"}
из cURL любой запрос выдает:
{"8":400,"23":"Ninja programming language is not supported your request"}

Всевозможные средства слежения в браузерах (Mozilla, Opera, Chrome) выдают:
POST запрос:
l user@mail.ru
p 12345678
s
или l=user%40mail.ru&p=12345678&s=

Если в браузере "наврать" пароль то ответ таков:
{"8":1000,"23":"\u041d\u0435\u0432\u0435\u0440\u043d\u044b\u0435 Email \u0438\u043b\u0438 \u043f\u0430\u0440\u043e\u043b\u044c","43":""}

8 1000
23 "Неверные Email или пароль"
43 ""

Суть вопроса следующая: Как правильно сформировать запрос на авторизацию в части передаваемых параметров?
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.