1. IMPORTANT : Nouvelles mesures de sécurité - 2. Règles pour obtenir de l'aide dans les forums de support - 3. Restrictions des droits pour le groupe "Support suspendu"

Il est obligatoire de respecter les Règles de MyBB.fr : Version abrégée ou Version complète pour obtenir du support sur nos forums.

Les membres ayant un site/forum contrevenant aux règles de MyBB.support seront placés dans le groupe "Support suspendu" et ne bénéficieront plus du support du staff. Nous recommandons aux autres membres d'agir de même. Il ne s'agit pas d'un bannissement, le membre retrouvera son statut "normal" dès que sa situation sera conforme aux règles.

Nouveau : un Wiki en français : plus de détails.
Avant de soumettre votre problème, consultez-le, ainsi que la FAQ, sans oublier le moteur de recherche interne.


Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
[Réglé] Bridge pour MushRaider
Mots-clés » bridge, mushraider
27-08-2015, 22:42, (Modification du message : 27-08-2015, 23:04 par Akenstorm.)
#8
RE: Bridge pour MushRaider
Alors pour la correction que vous m'avez donné bug mais je ne sais pas du tout pourquoi la page renvoi :
Code :
false)); exit;}else{ $pwd = stripslashes($_POST['pwd']); $result_username = username_exists($_POST['login']); if ($result_username != false) { $result_password = validate_password_from_username($_POST['login'], $pwd); if ($result_password != false) { $userInfos = array(); $userInfos['authenticated'] = true; // Or false if don't $userInfos['email'] = $result_password['email']; // Replace it with the user's email, offcourse $userInfos['role'] = 'member'; // Optional parameter, force & set the role for this user. Can be 'member' (default), 'officer' or 'admin' echo json_encode($userInfos); exit; } else { echo json_encode(array('authenticated' => false)); exit; } } else { echo json_encode(array('authenticated' => false)); exit; }}?>

A la place de :
Code :
{"authenticated":false}

du coup j'ai ajouté votre correction sur mon code ce qui donne :
Code PHP :
<?php

define
("IN_MYBB",1);

require_once 
"./global.php";

require_once 
MYBB_ROOT."inc/functions_user.php";



/*

Bridge exemple for MushRaider

More infos on http://mushraider.com/bridge

*/

header('Content-Type: application/json');

 

// Secret key added in MushRaider's admin

$salt '**********************';



 

// Test if we get the login & password infos

if(empty($_POST['login']) || empty($_POST['pwd'])) {

 
   echo json_encode(array('authenticated' => false));

 
   exit;

}

else



    
// Decrypt password

    // No reason to change this

    
$iv_size mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128MCRYPT_MODE_ECB);

    
$iv mcrypt_create_iv($iv_sizeMCRYPT_RAND);

    
$pwd mcrypt_decrypt(MCRYPT_RIJNDAEL_128$saltstripslashes($_POST['pwd']), MCRYPT_MODE_ECB$iv);



    
$result_username username_exists($_POST['login']);

    if (
$result_username != false)

    {

        
$result_password validate_password_from_username($_POST['login'], $pwd);

        if (
$result_password != false)

        {

            
$userInfos = array();

            
$userInfos['authenticated'] = true// Or false if don't

            
$userInfos['email'] = $result_password['email']; // Replace it with the user's email, offcourse

            
$userInfos['role'] = 'member'// Optional parameter, force & set the role for this user. Can be 'member' (default), 'officer' or 'admin'

             

            
echo json_encode($userInfos);

            exit;

        }

        else 

        {

            echo 
json_encode(array('authenticated' => false));
            exit;
        }

    }

    else 

    {

 
       echo json_encode(array('authenticated' => false));
        exit;
 
   }

}

?>
(j'ai pas enlevé le décryptage car je pense que le dev de MushRaider l'a mit car le mot de passe que l'API de MushRaider envoi à la page est crypté)
Mais malheureusement ça ne fonctionne pas non plus je ne comprends pas ^^'

Ps: Si ça peut aider voilà la code du bridge pour phpbb :
Code PHP :
<?php
/**
*
* @package phpBB Extension - phpBB Mushraider
* @copyright (c) 2015 Kyah (Julien Goret)
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
*
*/

/**
* @ignore
*/
namespace octetsetquartdepouces\mushraider\controller;
class 
login {
  public function 
__construct(\phpbb\config\config $config, \phpbb\user $user, \phpbb\auth\auth $auth, \phpbb\request\request $request, \phpbb\controller\helper $helper$root_path$php_ext)
  {
    
$this->config $config;
    
$this->user $user;
    
$this->auth $auth;
    
$this->request $request;
    
$this->helper $helper;
    
$this->root_path $root_path;
    
$this->php_ext $php_ext;
  }

  public function 
base() {
    
header('Content-Type: application/json');
    require(
$this->root_path 'includes/constants.' $this->php_ext);
    require(
$this->root_path 'includes/functions_user.' $this->php_ext);
    
$this->user->session_begin();
    
$this->auth->acl($this->user->data);
    if (
$_POST) {
      if (!isset(
$_POST['login']) || !isset($_POST['pwd'])) {
        echo 
json_encode(array('authenticated' => false));
        exit;
      } else {
        
$username request_var('login''');
        
$pwd $this->request->get_super_global(\phpbb\request\request_interface::POST)['pwd'];
        
$iv_size mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128MCRYPT_MODE_ECB);
        
$iv mcrypt_create_iv($iv_sizeMCRYPT_RAND);
        
$salt trim($this->config['mushraider_apikey']);
        
$password utf8_decode(trim(mcrypt_decrypt(MCRYPT_RIJNDAEL_128$saltstripslashes($pwd), MCRYPT_MODE_ECB$iv)));;
        
$username request_var('login''');
        
// Test if phpBB connects user
        
$result $this->auth->login($username$password);
        
$error $result['error_msg'];
        if (
$result['status'] == LOGIN_SUCCESS)
        {
          
$admins explode(','$this->config['mushraider_admin']);
          
$officers explode(','$this->config['mushraider_officers']);
          
$members explode(','$this->config['mushraider_members']);
          
//User was successfully logged into phpBB
          
$phpbbUserRow $result['user_row'];
          
$user_id $phpbbUserRow['user_id'];
          
$userInfos = array();
          
// Here we need to find if user is admin, officer or member!
          
foreach ($admins as $admin_group) {
            if (!isset(
$userRole) && group_memberships($admin_group,$user_id,true)) {
              
$userRole 'admin';
            }
          }
          foreach (
$officers as $officer_group) {
            if (!isset(
$userRole) && group_memberships($officer_group,$user_id,true)) {
              
$userRole 'officer';
            }
          }
          foreach (
$members as $member_group) {
            if (!isset(
$userRole) && group_memberships($member_group,$user_id,true)) {
              
$userRole 'member';
            }
          }
          if (isset(
$userRole)) {
            
// Everything is OK!
            
$isAuthenticated true;
            
$userInfos['email'] = $phpbbUserRow['user_email'];
            
$userInfos['role'] = $userRole;
          } else {
            
$isAuthenticated false;
          }
          
// Return json to mushraider
          
$userInfos['authenticated'] = $isAuthenticated;
          echo 
json_encode($userInfos);
        }
        else {
          echo 
json_encode(array('authenticated' => false));
        }
        exit;
      }
    } else {
      
// If we don't come from mushraider, send them back to home...
      
redirect(append_sid("{$this->root_path}index.$this->php_ext"));
    }
  }
}
?>

>Lien pour Télécharger le fichier complet<
Répondre


Messages dans ce sujet
Bridge pour MushRaider - Akenstorm - 16-08-2015, 20:40
RE: Bridge pour MushRaider - Saphir - 27-08-2015, 12:30
RE: Bridge pour MushRaider - Saphir - 27-08-2015, 15:59
RE: Bridge pour MushRaider - Akenstorm - 27-08-2015, 22:42
RE: Bridge pour MushRaider - Saphir - 28-08-2015, 23:53



Utilisateur(s) parcourant ce sujet : 3 visiteur(s)

Contact | MyBB.support | Retourner en haut | Retourner au contenu | Version bas-débit (Archivé) | Syndication RSS
 Utilitaire de traduction fourni par Regentronique