Piste :
Différences ¶
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédenteProchaine révisionLes deux révisions suivantes | ||
tutoriels:jauth [2008/01/04 13:38] – bastnic | fr:tutoriels:jauth [2010/04/27 17:42] – rob2 | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
+ | |||
+ | ====== Tutoriel : La classe jAuth ====== | ||
+ | Vous apprendrez dans cet article comment utiliser jAuth. | ||
+ | |||
+ | Ce tutoriel n’est pas destiné à créer un outils de production mais peut servir de base à votre compréhension de Jelix. Il va permettre de développer toute une série d' | ||
+ | |||
+ | ===== Pré-requis ===== | ||
+ | |||
+ | Vous devez avoir fait le mini-tutoriel et le tutoriel principal si vous n' | ||
+ | |||
+ | |||
+ | ==== Créé une application ==== | ||
+ | |||
+ | Dans un premier temps on crée une application, | ||
+ | |||
+ | <code bash> | ||
+ | php jelix.php --auth1 createapp | ||
+ | </ | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ==== Le fichier de configuration ==== | ||
+ | |||
+ | Il faut activer le plugin de coordinateur " | ||
+ | |||
+ | |||
+ | Aussi, ouvrez le fichier /// | ||
+ | |||
+ | <code ini> | ||
+ | [plugins] | ||
+ | auth = " | ||
+ | |||
+ | </ | ||
+ | |||
+ | Copiez le fichier /// | ||
+ | |||
+ | |||
+ | |||
+ | ==== Configuration classique du pluggin ==== | ||
+ | Tel que décrit dans la section [[fr: | ||
+ | |||
+ | <code ini> | ||
+ | driver = Db | ||
+ | on_error_action = " | ||
+ | after_login = " | ||
+ | after_logout = " | ||
+ | on_error_sleep = 3 | ||
+ | [Db] | ||
+ | dao = " | ||
+ | </ | ||
+ | |||
+ | On utilise donc le driver " | ||
+ | |||
+ | |||
+ | ==== La table ==== | ||
+ | Ajoutez la table // | ||
+ | |||
+ | <code sql> | ||
+ | CREATE TABLE `jlx_user` ( | ||
+ | `usr_login` VARCHAR( 50 ) NOT NULL , | ||
+ | `usr_password` VARCHAR( 50 ) NOT NULL , | ||
+ | `usr_email` VARCHAR( 255 ) NOT NULL , | ||
+ | PRIMARY KEY ( `usr_login` ) | ||
+ | ); | ||
+ | </ | ||
+ | |||
+ | ==== Les données ==== | ||
+ | Insérez les données suivantes : | ||
+ | |||
+ | <code sql> | ||
+ | INSERT INTO `jlx_user` VALUES (' | ||
+ | INSERT INTO `jlx_user` VALUES (' | ||
+ | INSERT INTO `jlx_user` VALUES (' | ||
+ | </ | ||
+ | |||
+ | On insère ainsi trois utilisateurs existants. | ||
+ | |||
+ | Un mot sur le mot de passe. | ||
+ | |||
+ | <code ini> | ||
+ | password_crypt_function = md5 | ||
+ | </ | ||
+ | |||
+ | N' | ||
+ | |||
+ | Attention : le stockage des mots de passe en md5 n'est pas un moyen sûr. Il vaut mieux utiliser d' | ||
+ | |||
+ | ===== Le contrôleur ===== | ||
+ | |||
+ | Nous arrivons à l’essentiel du tutoriel, le contrôleur, | ||
+ | |||
+ | <code php> | ||
+ | |||
+ | class defaultCtrl extends jController{ | ||
+ | /* | ||
+ | * Définition des accès gérés par jAuth | ||
+ | */ | ||
+ | public $pluginParams = array( | ||
+ | ' | ||
+ | ' | ||
+ | ); | ||
+ | | ||
+ | /* | ||
+ | * La page d' | ||
+ | */ | ||
+ | function index(){ | ||
+ | $rep = $this-> | ||
+ | $rep-> | ||
+ | | ||
+ | $tpl = new jTpl(); | ||
+ | $rep-> | ||
+ | | ||
+ | return $rep; | ||
+ | } | ||
+ | | ||
+ | /* | ||
+ | * Cette action ne peut être exécutée que si vous être connecté | ||
+ | */ | ||
+ | function affiche1(){ | ||
+ | $rep = $this-> | ||
+ | $rep-> | ||
+ | | ||
+ | $tpl = new jTpl(); | ||
+ | $rep-> | ||
+ | |||
+ | return $rep; | ||
+ | } | ||
+ | | ||
+ | /* | ||
+ | * Cette action accepte l' | ||
+ | * que si personne n'est connecté | ||
+ | */ | ||
+ | function affiche2(){ | ||
+ | $rep = $this-> | ||
+ | $rep-> | ||
+ | | ||
+ | // utilisation de jAuth:: | ||
+ | // est actuellement identifié ou pas | ||
+ | if(!jAuth:: | ||
+ | $tpl = new jTpl(); | ||
+ | $rep-> | ||
+ | }else{ | ||
+ | $rep-> | ||
+ | } | ||
+ | return $rep; | ||
+ | } | ||
+ | | ||
+ | /* | ||
+ | * Change le mot de passe d'un user | ||
+ | */ | ||
+ | function changePwd(){ | ||
+ | $rep = $this-> | ||
+ | $rep-> | ||
+ | | ||
+ | jAuth:: | ||
+ | $rep-> | ||
+ | |||
+ | return $rep; | ||
+ | } | ||
+ | | ||
+ | /* | ||
+ | * Affiche tous les users | ||
+ | */ | ||
+ | function listusers(){ | ||
+ | $rep = $this-> | ||
+ | $rep-> | ||
+ | | ||
+ | $content = 'Les users enregistrés sont:<br />'; | ||
+ | $users = jAuth:: | ||
+ | foreach($users as $user){ | ||
+ | | ||
+ | } | ||
+ | $rep-> | ||
+ | | ||
+ | return $rep; | ||
+ | } | ||
+ | | ||
+ | /* | ||
+ | * Affiche le user courrant de la session | ||
+ | */ | ||
+ | function getCurrentUser(){ | ||
+ | $rep = $this-> | ||
+ | $rep-> | ||
+ | |||
+ | try{ | ||
+ | $user = jAuth:: | ||
+ | $rep-> | ||
+ | }catch(Exception $e){ | ||
+ | $rep-> | ||
+ | } | ||
+ | |||
+ | return $rep; | ||
+ | } | ||
+ | |||
+ | /* | ||
+ | * Récupère un user | ||
+ | */ | ||
+ | function getUser(){ | ||
+ | $rep = $this-> | ||
+ | $rep-> | ||
+ | |||
+ | try{ | ||
+ | $user = jAuth:: | ||
+ | if($user){ | ||
+ | $rep-> | ||
+ | }else{ | ||
+ | $rep-> | ||
+ | } | ||
+ | }catch(Exception $e){ | ||
+ | $rep-> | ||
+ | } | ||
+ | | ||
+ | return $rep; | ||
+ | } | ||
+ | |||
+ | /* | ||
+ | * Vérifie le password d'un user | ||
+ | * Peut être utilisé lors d'un login | ||
+ | * Dans cet exemple le retour sera toujours un password non valide | ||
+ | * parce que l' | ||
+ | */ | ||
+ | function verifiePwd(){ | ||
+ | $rep = $this-> | ||
+ | $rep-> | ||
+ | | ||
+ | $r = jAuth:: | ||
+ | if(!$r){ | ||
+ | $rep-> | ||
+ | }else{ | ||
+ | $rep-> | ||
+ | } | ||
+ | |||
+ | return $rep; | ||
+ | } | ||
+ | |||
+ | /* | ||
+ | * Crée un user en session et en DB | ||
+ | */ | ||
+ | function createUser(){ | ||
+ | $rep = $this-> | ||
+ | $rep-> | ||
+ | |||
+ | // creation d'un user avec le login tempuser et le mot de passe pwtempuser | ||
+ | $newUser = jAuth:: | ||
+ | $newUser-> | ||
+ | | ||
+ | try{ | ||
+ | $user = jAuth:: | ||
+ | $rep-> | ||
+ | }catch(Exception $e){ | ||
+ | $rep-> | ||
+ | } | ||
+ | |||
+ | return $rep; | ||
+ | } | ||
+ | | ||
+ | /* | ||
+ | * Met à jour un user existant | ||
+ | */ | ||
+ | function updateUser(){ | ||
+ | $rep = $this-> | ||
+ | $rep-> | ||
+ | |||
+ | $updUser = jAuth:: | ||
+ | if($updUser){ | ||
+ | $updUser-> | ||
+ | try{ | ||
+ | jAuth:: | ||
+ | | ||
+ | // Pour vérifier visuelement la modification | ||
+ | $user = jAuth:: | ||
+ | $rep-> | ||
+ | }catch(Exception $e){ | ||
+ | $rep-> | ||
+ | } | ||
+ | }else{ | ||
+ | $rep-> | ||
+ | } | ||
+ | | ||
+ | return $rep; | ||
+ | } | ||
+ | | ||
+ | /* | ||
+ | * Efface un user de la session et de la DB | ||
+ | */ | ||
+ | function deleteUser(){ | ||
+ | $rep = $this-> | ||
+ | $rep-> | ||
+ | | ||
+ | if(jAuth:: | ||
+ | if(jAuth:: | ||
+ | $rep-> | ||
+ | }else{ | ||
+ | $rep-> | ||
+ | } | ||
+ | }else{ | ||
+ | $rep-> | ||
+ | } | ||
+ | |||
+ | return $rep; | ||
+ | } | ||
+ | | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | ===== Le template main ===== | ||
+ | Créez le fichier qui servira de template principal. Il est nommé main.tpl et doit être créé dans le répertoire / | ||
+ | |||
+ | <code html> | ||
+ | |||
+ | < | ||
+ | < | ||
+ | user10/ | ||
+ | user20/ | ||
+ | user100/ | ||
+ | <hr /> | ||
+ | {$MAIN} | ||
+ | <hr /> | ||
+ | <ul> | ||
+ | < | ||
+ | < | ||
+ | </ul> | ||
+ | <hr /> | ||
+ | <ul> | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | </ul> | ||
+ | <hr /> | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | </ul> | ||
+ | <hr /> | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | </ul> | ||
+ | |||
+ | </ | ||
+ | |||
+ | |||
+ | ===== Le template affichage1 ===== | ||
+ | Créez le fichier template qui nécessite une authentification. Il est nommé affichage1.tpl et doit être créé dans le répertoire / | ||
+ | |||
+ | <code html> | ||
+ | |||
+ | < | ||
+ | |||
+ | </ | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ===== Le template affichage2 ===== | ||
+ | Créez le fichier template qui ne nécessite __aucune__ authentification. Il est nommé affichage2.tpl et doit être créé dans le répertoire / | ||
+ | |||
+ | <code html> | ||
+ | |||
+ | < | ||
+ | < | ||
+ | |||
+ | </ | ||
+ | |||
+ | |||
+ | |||
+ | ---- | ||
+ | * [[fr: |