Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
809 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Authentification SPIP dans phpbb3

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Authentification SPIP dans phpbb3

n°2180940
The_ProToS
Posté le 17-03-2013 à 03:31:44  profilanswer
 

Bonjour,
 
Je cherche a intégré le forum phpbb3 dans un site sous spip2 mais cela va au-delà de mes faibles
connaissance en php/msql. Je travaille en local avec xampp sîps et phpbb3 dans la même base msql
(et non msqli pour phpbb)
 
Pour le moment grâce au plugin Commentaires PHPBB  
http://contrib.spip.net/Commentaires-PHPBB  
les commentaire sont bien redirigé vers phpbb.
 
Maintenant je cherche a avoir une seule base d'utilisateur pour les 2 applications,  
J'ai commencé ma recherche du coté de spip et de ses plugin, j'ai bien tenté
d'utilisé le plugin authext  
http://spipcarto.free.fr/?Plugin-a [...] on-externe
(origine ce ce plugin http://zone.spip.org/trac/spip-zon [...] rev=27073)
sans succès.
 
Vue le peut d'info que j'ai pu voir sur les forum et mailing officielle de spip me suis donc lancé pour une recherche du coté  
de phpbb3.
Bonne surprise sur le wiki, on peut créée un plugin authentification externe
https://wiki.phpbb.com/Authentication_plugins
Je me suis mis a la recherche de plus d'info sur le sujet et suis arrivé sur ce script datant de 2009
http://nzeyimana.nefa.se/2009/04/a [...] le-source/
 
mais il n'a pas l'air de bien fonctionné suivant ces post sur le forum de phpbb
https://www.phpbb.com/community/viewtopic.php?t=1598865
https://www.phpbb.com/community/vie [...] &t=2096370
 
J'ai poussé plus loin et le seul que j'ai pu trouvé vient d'un site russe
http://habrahabr.ru/post/150872/
passé a la moulinette de google translate  
http://translate.google.fr/transla [...] F150872%2F
et daté de septembre 2012
 
je cherche donc de l'aide affin d'adapter ce plugin a spip avec les quelques infromations que
trouvé
 
spip encode ses mot de passe en sha256 et un alea d'après ce j'ai compris sur le forum spip

Code :
  1. sha256( $alea_actuel . $password)


sur le wiki phpbb
 


The user_row created from the external data should contain the following fields:
Field                  Meaning
user_id                user identifier
username               external username
user_password          phpbb_hash of the external password
user_email             E-mail of the new user if available from the external method, blank otherwise.
Group_id               Group ID, usually the default group ID, but could also be deduced from external data
user_type              User type, defined in constants.php, usually USER_NORMAL.  


j'ai cherché les correspondance sachant que sous spip le nom d'utilisateur et celui pour ce connecté
n'est pas le même $nom et $login  


phpbb-users           spip_auteurs
         
user_id               id_auteur
username              nom
user_password         pass
user_email            email  
Group_id          
user_type             statut
 
et donc
username_clean        login


voilà ou en sont mes recherche et je cherche de l'aide car cela dépasse mes compétence.
 
En vous remerciant  
 
je joins ci dessous le script du site russe avec les commentaires traduit car la moulinette de google
pourrit un peut tout a la traduction
 

Code :
  1. <?php
  2. /**
  3. *
  4. * Autorisation plugin Sample phpBB3
  5. *
  6. */
  7. if (!defined('IN_PHPBB'))
  8. {
  9.    exit;
  10. }
  11. /**
  12. * renvoie des informations sur l'utilisateur courant
  13. */
  14. function get_user_data()
  15. {
  16.        $result['user_email'] = “user@example.com”;
  17.        $result['username'] = “username”;
  18.        $result['user_password'] = “user_password”;
  19.        return $result;
  20. }
  21. /**
  22. * Fonction responsable de l'autorisation.
  23. */
  24. function login_simple(&$username, &$password)
  25. {
  26.     $auth = get_user_data();
  27.  
  28.     // Si l'autorisation n'est pas possible
  29.     if (!is_array($auth) || empty($auth))
  30.     {
  31.        return array(
  32.                    'status' => LOGIN_ERROR_USERNAME,
  33.                    // Message par clé ACCESS_DIRECTLY_DENIDED être ajoutées aux fichiers language/<language>/common.php
  34.                    'error_msg' => 'ACCESS_DIRECTLY_DENIDED',
  35.                    'user_row' => array('user_id' => ANONYMOUS),
  36.        );
  37.     }
  38.  
  39.     global $db;
  40.     $sql = 'SELECT user_id, username, user_password, user_passchg, user_email, user_type
  41.            FROM ' . USERS_TABLE . "
  42.            WHERE username_clean = '" . $db->sql_escape($auth['username']) . "'";
  43.     $result = $db->sql_query($sql);
  44.     $row = $db->sql_fetchrow($result);
  45.     $db->sql_freeresult($result);
  46.  
  47.     if ($row){
  48.        $res = array(
  49.                    'status'     => LOGIN_SUCCESS, // all clear
  50.                    'error_msg'  => false// aucune erreur
  51.                    'user_row'     => array(
  52.                        'user_id' => $row['user_id'],  //ID utilisateur phpbb
  53.                        'username'       => $row['username'],  // Du nom d'affichage
  54.                        'user_password'  => $row['user_password'],  // phpbb-hash du mot de passe
  55.                        'user_email'     => $row['user_email'],  // E-mail de l'utilisateur, s'il existe un
  56.                        'user_type'      => 0,  // type d'utilisateur (admin \ pas admin, etc)
  57.                        'group_id' => 2  // groupe par défaut
  58.                        )
  59.                    );
  60.        return $res;
  61.     }
  62.      
  63.     // Annoncer que l'authentification est réussie.
  64.     $res = array(
  65.                        'status'     => LOGIN_SUCCESS_CREATE_PROFILE,
  66.                        'error_msg'  => false,
  67.                        'user_row'     => array(
  68.                            "username"       => $auth['username'],  // Du nom d'affichage
  69.                            "user_password"  => phpbb_hash($auth['user_password']),  // phpbb-hash du mot de passe
  70.                            "user_email"     => $auth['user_email'],  // E-mail de l'utilisateur, s'il existe un
  71.                            "user_type"      => 0,
  72.                            "group_id" => 2
  73.                        ),
  74.     );
  75.     return $res;
  76. }
  77. /**
  78. * Fonction responsable de l'enregistrement et de l'autorisation d'un utilisateur de la première visite.
  79. */
  80. function autologin_simple()
  81. {
  82.     // nom d'utilisateur et mot de passe sera reçu dans la fonction, en passant le cap
  83.     $u = "";
  84.     $user_row = login_simple($u, $u);
  85.     // Si vous n'êtes pas encore inscrit
  86.     if ($user_row['status'] == LOGIN_SUCCESS_CREATE_PROFILE)
  87.     {
  88.        global $phpbb_root_path, $phpEx;
  89.        if (!function_exists('user_add'))
  90.        {
  91.                include($phpbb_root_path . 'includes/functions_user.' . $phpEx);
  92.        }
  93.        $user_row['user_row']['user_id'] = user_add($user_row['user_row']);
  94.     }
  95.     // retourner les données de l'utilisateur
  96.     global $db;
  97.     $sql = 'SELECT * FROM ' . USERS_TABLE . " WHERE user_id = '" . $db->sql_escape($user_row['user_row']['user_id']) . "'";
  98.     $result = $db->sql_query($sql);
  99.     $row = $db->sql_fetchrow($result);
  100.     $db->sql_freeresult($result);
  101.     return $row;
  102. }
  103. ?>


mood
Publicité
Posté le 17-03-2013 à 03:31:44  profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Authentification SPIP dans phpbb3

 

Sujets relatifs
formulaire php mysql avec authentification smtp[SPIP-EvaWeb] Avis sur site de collège
Authentification + redirectionauthentification et redirection
[SPIP] - abonnés à aucune liste : comment les abonner ?Apache + SVN, problème d'authentification
Header d'authentification en PHPSPIP: afficher le fichier css selectionné
[Telnet] Problème d'authentification sur le smtp de gmail[Perl] Demande authentification avec le script mais pas avec Firefox
Plus de sujets relatifs à : Authentification SPIP dans phpbb3


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR