vBulletin логин с субдомена - PullRequest
       20

vBulletin логин с субдомена

0 голосов
/ 09 декабря 2010

У меня есть особая потребность в авторизации, чтобы vBulletin не с форума напрямую. Я просматривал темы в поиске "логин vbulletin", но ничего не нашел.

Итак, вот структура.

  • domain.com - основной сайт, доступ есть ограничено диапазоном IP-адресов
  • domain.com / forum / - vB с файлами cookie хост, установленный на .domain.com, конечно это также ограничено ip
  • extra.domain.com - дополнительный сайт который доступен практически каждому («почти» включает пользователей vB создается вручную через ACP)

На данный момент пользователи, уже прошедшие аутентификацию на domain.com/forum/, распознаются как на domain.com, так и на extra.domain.com.

Так что проблема в том, чтобы войти с extra.domain.com на domain.com/forum/

Однако я не могу просто публиковать введенные имена пользователей и пароли на форуме из-за ограничений ip. Как я понял, должна быть какая-то обертка, которая выполнит всю процедуру входа в систему через cURL или каким-либо другим способом, получит все куки и затем вернет их пользователю.

Прежде всего, пожалуйста, скажите мне, я в правильном пути в моих мыслях? Также есть ли другие способы выполнить задачу, не тратя часы на анализатор HTTP? Я имею в виду, есть ли плагины SOAP для аутентификации vB из доверенных доменов? Версия форума - 4.0.8

1 Ответ

0 голосов
/ 23 января 2011

Имеет ли код на дополнительном сайте доступ к коду и базе данных vBulletin? Если это так, вы можете обрабатывать входы vBulletin в PHP следующим образом:

chdir('/directory/where/vbulletin/is');
require_once('global.php');
require_once(DIR . '/includes/functions_login.php');

// Check for too many login attempts
$strikes = verify_strike_status($username, TRUE);
if ($strikes === FALSE || $strikes >= 5) {
    // TODO: Your error handling here
}

// Attempt authentication
if (!verify_authentication($username, $password, '', '', TRUE, TRUE)) {
    exec_strike_user($username);
    // TODO: Handle bad username & password here
}

// Clear records of previous bad logins
exec_unstrike_user($username);

// Create a new session
process_new_login('', TRUE, '');

Приведенный выше код должен работать с vBulletin 3.8.x, но из того, что я помню о 4.x, не нужно много настроек, чтобы он работал с 4.0.8.

Установите для 5-го параметра значение verify_authentication, равное false, если вы хотите, чтобы вход в систему был непостоянным (например, не проверять «Запомнить меня» при входе в систему).

...