2010-12-09 3 views
0

У меня есть довольно специальная необходимость в регистрации в vBulletin не из форума напрямую. Я просматривал темы, ища «vbulletin login», но ничего не нашел.vBulletin login from subdomain

Так вот структура.

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

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

Так что проблема для входа из extra.domain.com в domain.com/forum/

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

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

ответ

0

Имеет ли код на вторичном сайте доступ к базе данных 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, если вы хотите сделать логин непостоянным (например, не проверить «Запомнить меня» при входе в систему).