Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.05.2012, 00:20   #1
NoName013
 
Регистрация: 08.05.2012
Сообщений: 5
По умолчанию [Вопрос] Авторизация vBulletin (Delphi or C++)

Доброго времени суток. Я столкнулся с проблемой и не знаю с какой стороны подойти к ее решению, может здесь мне подскажут как быть

Имеется форум на движке vBulletin. На этом форуме есть мини веб-чат (чат виден только для зарегистрированных пользователей). Я решил написать программу, которая, вместо браузера позволяла бы в этом чате общаться.

Казалось бы, все что нужно я сделал. Написал прогу на делфи. Авторизуюсь на сайте пост запросом, получаю капчу, отправляю текст капчи. Получаю куки (bbsessionhash). Гет запросом получаю код странички с чатом. Парсю securitytoken. Этот толкен отправляется пост запросом для обновления чата каждые 30 сек. Получаю код чата, вытягиваю с него сообщения и ники пользователей и отображаю их в программе.

Все работает как часики, за исключением одного момента.
Если 30 мин (ровно) не проявлять активности в чате (не отсылать сообщений, только принимать их), от сервера приходят новые куки bbsessionhash, bblastvisit и bblastactivity. После этого securitytoken = guest и чат становится недоступным для просмотра. Я так понял, сайт завершает сессию авторизации.

Вопрос заключается в том, как с этим бороться? В браузере, сессия не завершается вообще (оставил комп на ночь с открытым чатом, утром он все еще был доступен).
Подскажите хотя бы в каком направлении копать... Очень надеюсь на помощь специалистов.
NoName013 вне форума Ответить с цитированием
Старый 08.05.2012, 00:58   #2
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Чисто теоретически:
Перехватите пакеты, отправляемые браузером и вашей программой.
Отличие может заключаться в том, что какой-то параметр отвечает за короткую сессию.
А может быть браузер сам переавторизуется с новыми куками?
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )

Последний раз редактировалось BDA; 08.05.2012 в 01:02.
BDA вне форума Ответить с цитированием
Старый 08.05.2012, 10:02   #3
NoName013
 
Регистрация: 08.05.2012
Сообщений: 5
По умолчанию

Наверно так и придется делать, но ужасно не хочется просматривать все пакеты за 30 минут работы браузера =\
NoName013 вне форума Ответить с цитированием
Старый 08.05.2012, 13:24   #4
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Возможно, не понадобится смотреть все пакеты.
Сначала посмотрите на первые пакеты, которые авторизуются. Нет ли там параметра, указывающего на короткую сессию.
Во-вторых, оставить чарльз и браузер на полчаса, по-моему, не проблема.
Потом осуществить поиск по словам bbsessionhash, bblastvisit и bblastactivity и найти время их получения. Тогда смотреть пакеты после этого времени.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 08.05.2012, 21:42   #5
NoName013
 
Регистрация: 08.05.2012
Сообщений: 5
По умолчанию

Воспользовался вашим советом и кажется понял почему вылезла такая проблема. При авторизации сайт высылает куки bbsessionhash, bblastvisit, bblastactivity, bbpassword.
Браузер их принимает и отсылает при любом запросе.
А вот моя программа отсылает при запросах только bbsessionhash.

В моей проге IdCookieManager1.CookieCollection.C ount равно 1, а должно быть 4, потому что приходит 4 печеньки
Версия Indy 10.5.8 (последняя).
Как мне быть? Почему такое происходит...
NoName013 вне форума Ответить с цитированием
Старый 08.05.2012, 22:21   #6
NoName013
 
Регистрация: 08.05.2012
Сообщений: 5
По умолчанию

Определил что bbsessionhash приходит первым. После него куки не принимаются. НО есть еще разница, в bbsessionhash срок действия куки не указан, а у остальных - указан.
Проблема явно с инди... Или инди не правильно работает, или я неправильно использую
NoName013 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Авторизация на vbulletin (POST) IndomiX Работа с сетью в Delphi 10 19.02.2012 21:11
Авторизация в игре Delphi Diunix Общие вопросы Delphi 4 10.10.2011 11:06
Авторизация на yandex.money. Вопрос. webber9989 Работа с сетью в Delphi 4 11.08.2011 09:41
Вопрос: Авторизация IdHTTP и WebBrowser mental Работа с сетью в Delphi 3 14.02.2011 01:20
Авторизация в Delphi KiRiLl13 Общие вопросы Delphi 3 27.02.2009 07:57