Line 2:
Line 2:
{{TemplateDocDev}}
{{TemplateDocDev}}
−
== Introduction ==
+
= Introduction =
Le système d'authentification de Dolibarr devient relativement complexe, et un bug peut être particulièrement difficile à trouver si l'on ne connaît par le processus d'authentification.
Le système d'authentification de Dolibarr devient relativement complexe, et un bug peut être particulièrement difficile à trouver si l'on ne connaît par le processus d'authentification.
Cette page présente une découpe du processus, qui permet de suivre la procédure et d'intervenir là où il le faut.
Cette page présente une découpe du processus, qui permet de suivre la procédure et d'intervenir là où il le faut.
−
== Processus ==
+
= Processus =
Le processus démarre par l'appel de la page que l'on souhaite voir. Par exemple, la page d'accueil htdocs/index.php. Mais ce n'est pas ce fichier assure la demande d'authentification. En fait toute page de Dolibarr inclut un fichier pre.inc.php qui lui même inclut le fichier main.php qui inclut master.php.
Le processus démarre par l'appel de la page que l'on souhaite voir. Par exemple, la page d'accueil htdocs/index.php. Mais ce n'est pas ce fichier assure la demande d'authentification. En fait toute page de Dolibarr inclut un fichier pre.inc.php qui lui même inclut le fichier main.php qui inclut master.php.
Line 29:
Line 29:
L'exécution du login, elle, se présente comme suit:
L'exécution du login, elle, se présente comme suit:
−
+
<source lang="php">
$authmode=array('http','dolibarr');
$authmode=array('http','dolibarr');
if (isset($dolibarr_auto_user)) $authmode=array('auto');
if (isset($dolibarr_auto_user)) $authmode=array('auto');
Line 38:
Line 38:
if (! session_id() || ! isset($_SESSION["dol_user"]))
if (! session_id() || ! isset($_SESSION["dol_user"]))
{
{
−
# Procédure de login. Affiche page login #
+
# Procédure de login. Affiche page login #
}
}
else
else
Line 60:
Line 60:
$_SESSION["dol_user"]=$user;
$_SESSION["dol_user"]=$user;
}
}
−
+
</source>
−
Mais analysons plus en détail le code d'appel de la méthode de vérification du couple user/password (il y a plusieurs méthodes disponibles, donc plusieurs appels possibles et qui devraient être mutuellement exclusifs).
Mais analysons plus en détail le code d'appel de la méthode de vérification du couple user/password (il y a plusieurs méthodes disponibles, donc plusieurs appels possibles et qui devraient être mutuellement exclusifs).
+
<source lang="php">
session_name("DOLSESSID_".$dolibarr_main_db_name);
session_name("DOLSESSID_".$dolibarr_main_db_name);
session_start();
session_start();
Line 71:
Line 71:
// dans le bon fichier qui verifie si un couple user/mot de passe est correcte
// dans le bon fichier qui verifie si un couple user/mot de passe est correcte
// Sinon, on affiche la page de login
// Sinon, on affiche la page de login
+
</source>
== Les modules de login ==
== Les modules de login ==