2010-12-09 22 views
0

J'ai un besoin plutôt spécial de se connecter à vBulletin pas du forum directement. J'ai regardé les sujets en cherchant "vbulletin login", mais je n'ai rien trouvé.vBulletin connectez-vous à partir du sous-domaine

Voici donc la structure.

  • domain.com - site principal, l'accès est limité par plage d'adresses IP
  • de domain.com/forum/ - vb avec l'hôte de cookies mis à .domaine.com, bien sûr il est également limité par ip
  • extra.domain.com - site secondaire qui est disponible pour presque tout le monde ('presque' inclut les utilisateurs de vB créés manuellement via ACP)

En ce qui concerne maintenant les utilisateurs déjà authentifiés à domain.com/forum/ sont reconnus tant au domain.com et à extra.domain.com.

Le problème est de se connecter à extra.domain.com domain.com/forum/

Cependant, je ne peux pas poster les noms d'utilisateur et mots de passe entrés au forum en raison de la restriction IP. Comme je l'ai compris, il devrait y avoir un wrapper, qui fera toute la procédure de connexion via cURL ou en quelque sorte, obtenir tous les cookies et ensuite les retourner à l'utilisateur.

Tout d'abord, s'il vous plaît me dire si je suis sur une bonne voie dans mes pensées? Existe-t-il d'autres façons d'accomplir une tâche sans avoir à passer des heures avec le sniffer HTTP? Je veux dire, y at-il des plugins SOAP pour vB auth à partir de domaines approuvés? Forum version est 4.0.8

Répondre

0

Est-ce que le code sur le site secondaire ont accès au code vBulletin base de données &? Si oui, vous pouvez gérer les connexions vBulletin en PHP comme ceci:

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, ''); 

Le code ci-dessus devrait fonctionner avec vBulletin 3.8.x, mais de ce que je me souviens de 4.x il ne devrait pas prendre beaucoup de peaufinage pour le faire travailler avec 4.0.8.

Définissez le 5ème paramètre sur verify_authentication sur false si vous souhaitez que le login ne soit pas persistant (par exemple, ne pas cocher "Remember Me" lors de la connexion).