Не получается авторизация через JQuery.post()

Форум для авторов модов для phpBB 3.0.x. Здесь можно попросить помощи в разработке у коллег.
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
Max Brown
phpBB 1.0.0
Сообщения: 2
Зарегистрирован: 25.12.2013 4:34

Не получается авторизация через JQuery.post()

Сообщение Max Brown » 25.12.2013 5:10

Уважаемые гуру, вынужден побеспокоить вас, поскольку гугление и поиск по форуму ничего не дали.
Если я читал FAQ невнимательно - не кидайтесь тапками, а лучше кидайтесь ссылками на соответствующие топики форума.

Я пытаюсь сделать авторизацию в phpBB3 запросом JQuery.post() с другого сайта (назовём его MyWebSite.ru, форум расположен на forum.MyWebSite.ru):

Код: Выделить всё

$.post( "http://forum.MyWebSite.ru/ucp.php?mode=login", { username:"My Name", password:"My$uperC00l_Password", redirect:"./index.php?sid="+$("input[name=sid]").val(), sid:$("input[name=sid]").val(), login:"Вход", style_cookie:"null",  }, function(data){
 alert(data);
});
Проблему отключения защиты от XSS уже решил (прописыванием в config.php строчки

Код: Выделить всё

header("Access-Control-Allow-Origin:http://MyWebSite.ru");
, где MyWebSite.ru - сайт, с которого выполняется $.post()
Продампил $user и $result (который в функции login_box) - всё идёт нормально, $result=3, в $user->data юзернэйм виден, но.
После того, как в этой функции срабатывает

Код: Выделить всё

if ($result['status'] == LOGIN_SUCCESS){
...
 die( header("Location: ".$redirect) );
...
}
, форум резко "забывает" о том, что только что меня успешно залогинил и открытие форума в другой вкладке тоже показывает, что я кагбэ и не логинился вовсе.
Такое полное ощущение, что ucp.php воспринимает JQuery.post() как другой браузер и создаёт для него, соответственно, другую сессию. Но блин, alert(data) тоже говорит, что я не залогинен (присутствует ссылка на страницу входа).

Собственно, вопрос: почему может не получаться авторизация запросом JQuery.post() с другого сайта?

Аватара пользователя
Pazh
Former team member
Сообщения: 2194
Зарегистрирован: 09.11.2009 17:46
Благодарил (а): 41 раз
Поблагодарили: 454 раза

Re: Не получается авторизация через JQuery.post()

Сообщение Pazh » 25.12.2013 9:56

посмотри в FireBug вкладку Cookies, кроме того не появляется ли в адресной строке новый sid
форум ЖК Вестердам Помощь в ЛС/email только за WM или ЯД

Аватара пользователя
nissin
phpBB 3.0.4
Сообщения: 2181
Зарегистрирован: 16.12.2007 14:01
Откуда: Павлодар
Благодарил (а): 7 раз
Поблагодарили: 338 раз

Re: Не получается авторизация через JQuery.post()

Сообщение nissin » 25.12.2013 10:01

phpBB после логина нужно передавать session_id через cookie или sid в GET запросе.
Всё повторяется. nurlan.info

Max Brown
phpBB 1.0.0
Сообщения: 2
Зарегистрирован: 25.12.2013 4:34

Re: Не получается авторизация через JQuery.post()

Сообщение Max Brown » 03.01.2014 19:05

Спасибо за ответы, ключевым словом было cookie, а собака порылась в том, что JQuery.post() не устанавливает и не сможет установить куку для forum.MyWebSite.ru, а может только для MyWebSite.ru
Пришлось устанавливать мод авторизации GET-запросом и открывать его во фрэйме, после чего проблема решилась.

Вернуться в «Для авторов (phpBB 3.0.x)»