Jump to content

Intégration de prestashop dans phpbb3


Recommended Posts

Bonjour à tous (et à toutes ;)),

J'ai découvert prestashop il y a peu, je souhaite l'utiliser pour mon site associatif qui est basé sur PHPBB3.

J'ai donc cherché dans les fichiers pour voir comment la connexion était effectuée, comment le mot de passe est crypté etc ...

J'ai je pense trouvé une solution 'simple' pour intégrer Prestashop avec les sessions PHPBB3.

Je vais remplacer la page authentification par un 'bridge' qui permettra une connexion automatique.

Fichier : config.inc.php

//Je fait mes include phpbb standard

define('IN_PHPBB', true);
$phpbb_root_path =  './forum/';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);
$user->session_begin();
$auth->acl($user->data);
$user->setup();


Fichier : authentification.php

//je vire tout et je remplace par mon bridge ...


if ($user->data['is_registered'])
{
   //Si envoie du formulaire de création de compte.
   if (Tools::isSubmit('submitAccount'))
   {
       //J'adapte ...
   }

   //si l'id_customer existe
   //requête préalable
   if ( $id_customer )
   {
       //Le profil Prestashop existe
       //On connecte le profil repris de la condition : if (Tools::isSubmit('SubmitLogin'))
       //A ADAPTER !!!

       //les user_id (phpbb3) seront les mêmes que les id_customer
       //
       //je vais donc connecter les gens via l'id
       //je fait donc une requête pour récupérer l'email suivant l'id ...

       $customer = new Customer();

       //sans mot de passe ça doit être possible ...
       //sinon je change le mot de pass en varchar(40) et je vérifie mot de passe crypté phpbb = mot de pass customer ... sachant que c'est pas la même méthodes de cryptage ...


       $authentication = $customer->getByemail(trim($email), trim($passwd));
       /* Handle brute force attacks */
       sleep(1);
       if (!$authentication OR !$customer->id)
           $errors[] = Tools::displayError('authentication failed');
       else
       {
           $cookie->id_customer = intval($customer->id);
           $cookie->customer_lastname = $customer->lastname;
           $cookie->customer_firstname = $customer->firstname;
           $cookie->logged = 1;
           $cookie->passwd = $customer->passwd;
           $cookie->email = $customer->email;
           if (Configuration::get('PS_CART_FOLLOWING') AND (empty($cookie->id_cart) OR Cart::getNbProducts($cookie->id_cart) == 0))
               $cookie->id_cart = intval(Cart::lastNoneOrderedCart(intval($customer->id)));
           $id_address = intval(Address::getFirstCustomerAddressId(intval($customer->id)));
           $cookie->id_address_delivery = $id_address;
           $cookie->id_address_invoice = $id_address;
           Module::hookExec('authentication');
           if ($back = Tools::getValue('back'))
               Tools::redirect($back);
           Tools::redirect('my-account.php');
       }
   else
   {
       //Création du profil Prestashop
       //On affiche le formulaire
   }
}
else
{
  //Login PHPBB
  login_box( 'url redirection ici' );
}



Qu'en pensez vous ?
Y'a t il un gros risque de sécurité à opérer ainsi ?

Link to comment
Share on other sites

Bonjour,

Tu as l'air des savoir ce que tu fais. Au niveau securité si tu conserves le système de token, je ne vois pas ce qui peut t'empecher de te faire ton bridge.

Très intéressant en tout cas comme objectif. Par contre topic mal placé, ce n'est pas de l'intégration de solutions ici mais XHTML lol =)

Cordialement,

Link to comment
Share on other sites

Bonjour,

Tu as l'air des savoir ce que tu fais. Au niveau securité si tu conserves le système de token, je ne vois pas ce qui peut t'empecher de te faire ton bridge.

Très intéressant en tout cas comme objectif. Par contre topic mal placé, ce n'est pas de l'intégration de solutions ici mais XHTML lol =)

Cordialement,



Sujet Déplacé

Encore Merci Gregory ;)

V++

Atch
Link to comment
Share on other sites

désolé pour avoir posté au mauvais endroit :red:

j'ai bien trouvé des bridge pour faire l'inverse, monter une boutique et intégrer phpbb dedans, mais moi je veux faire l'inverse ... si je fait ça tout mon site ne fonctionnera plus :ohh:

Au niveau securité si tu conserves le système de token, je ne vois pas ce qui peut t’empecher de te faire ton bridge.


Qu'entendez vous par là ?
Normalement j'y touche pas à ce système ... puisque je vais me servir juste de ma session phpbb pour ouvrir automatiquement celle de prestashop ...
Link to comment
Share on other sites

Bon ça commence mal rien que le fait de mettre la base phpbb pour récupérer la session ça fou la zone ...

Je peux plus faire de commande si je rajoute ça dans le fichier init :

define('IN_PHPBB', true);
$phpbb_root_path =  '/homez.335/gtrsbosn/www/forum/';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'includes/utf/utf_normalizer.php');
include($phpbb_root_path . 'common.php');
$user->session_begin();
$auth->acl($user->data);
$user->setup();



et j'ai beau essayer de chercher je vois pas

Link to comment
Share on other sites

  • 5 months later...

Cela fait quelques temps que j'ai mis de coté ce projet, mais je souhaite revenir dessus maintenant que j'ai un peu de temps à y consacrer.

Je me suis donc de nouveau pencher sur la question, et avant tout j'aimerai savoir comment le login est gerer dans prestashop, à quelle fonction est-il fait appel ? J'ai bien fait quelques essais, mais je ne trouve rien de concluant :(


Merci pour votre aide...

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...