31,003
edits
mNo edit summary |
mNo edit summary |
||
| Line 2: | Line 2: | ||
{{TemplateDocDev}} | {{TemplateDocDev}} | ||
= 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 = | |||
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 # | |||
} | } | ||
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 == | ||