Le blog du pangolin

Accueil > Programmation > PHP > CodeIgniter > Tank auth pour codeIgniter

Tank auth pour codeIgniter

lundi 14 novembre 2011, par Super Pangolin

Cet article est en cours de rédaction

Site officiel : http://konyukhov.com/soft/tank_auth/
Chargez et décompressez la dernière archive (version 1.0.9 pour cet article)

Vous obtenez l’arborescence d’une application CI, un répertoire captcha et un fichier sql.

Copiez les fichiers du répertoire « application » vers votre application et copiez le répertoire « captcha » vers la racine de CI. Si vous voulez définir un préfixe pour les tables d’authentification, allez dans le répertoire config et éditez le fichier « tank_auth.php ». Tout à la fin, entrez votre préfixe pour le paramètre « db_table_prefix ». Exemple :

$config['db_table_prefix'] = 'tank_';

Changez le code du fichier sql en conséquence en renommant toutes les tables sauf « ci_sessions » et jouez le script. Si vous n’utilisez pas une base mysql, il vous faudra adapter le script à votre base.

Editez le fichier de configuration principal de votre application (application/config/config.php) et passez le paramètre « $config[’sess_use_database’] » à « TRUE ; » et définissez votre clef d’encryptage (paramètre « $config[’encryption_key’] »).

Vous pouvez maintenant lancer l’exemple fourni et créer votre premier utilisateur.
http://monserveur/monprojetcodeigniter/index.php/welcome

Si vous ne pouvez pas envoyer de mail depuis votre serveur de test, vous pouvez activer les comptes à la main en mettant la valeur de la colonne « activated » à 1 dans la table « tank_users ».

La librairie utilise phpass pour le cryptage des mots de passe, ce qui est plus sûr que seulement faire un hash en md5.
Exemple d’utilisation
Si l’exemple fourni n’est pas assez documenté pour vous, voici le détail du fonctionnement de Tank Auth :
D’abord, créons une vue toute bête avec un formulaire d’authentification :

  1.                         <?php echo form_open(current_url().'/connexion'); ?>
  2.                         <p>
  3.                         <?php echo form_label($labels['login'], 'login', array('class' => 'labelFormulaire')); ?>
  4.                         <?php echo form_input($composants['login']); ?>
  5.                         </p>
  6.                         <p>
  7.                         <?php echo form_label($labels['passwd'], 'passwd', array('class' => 'labelFormulaire')); ?>
  8.                         <?php echo form_password($composants['passwd']); ?>
  9.                         </p>
  10.                         <?php echo form_submit($composants['boutonValider']); ?><br />
  11.                         <?php echo form_close(); ?>

Télécharger

Voici le contrôleur qui va avec :

  1. <?php
  2. class auth extends MY_Controller{
  3.         function __construct(){
  4.                 parent::__construct();
  5.                 $this->load->helper('form_helper');
  6.                 $this->load->helper('url');
  7.                 $this->load->library('form_validation');
  8.         }
  9.  
  10.         function index()
  11.         {
  12.                 //--- Définition des composants du formulaire et de leur validation
  13.  
  14.                 //--- Labels
  15.                 $tLabels_l = array('login' => 'Identifiant : ',
  16.                                                   'passwd' => 'Mot de passe : ',
  17.                                                   'boutonValider' => 'Entrer!!');
  18.  
  19.                 //--- Composants (input)
  20.                 define('MAX_LENGTH_LOGIN', 50);
  21.                 define('MAX_LENGTH_PASSWD', 50);
  22.                 $tComposants_l = array('login' => array('id' => 'login',
  23.                                                                                                 'name' => 'login',
  24.                                                                                                 'value' => set_value('login'),
  25.                                                                                                 'maxlength' => MAX_LENGTH_LOGIN),
  26.                                                                                                 'class' => 'inputFormulaire',
  27.                                                                 'passwd' => array('id' => 'passwd',
  28.                                                                                                 'name' => 'passwd',
  29.                                                                                                 'value' => set_value('passwd'),
  30.                                                                                                 'maxlength' => MAX_LENGTH_PASSWD),
  31.                                                                                                 'class' => 'inputFormulaire',
  32.                                                                 'boutonValider' => array('id' => 'valider',
  33.                                                                                                 'name' => 'valider',
  34.                                                                                                 'value' => $tLabels_l['boutonValider'],
  35.                                                                                                 'class' => 'droiteFormulaire inputFormulaire',
  36.                 )
  37.                 );
  38.  
  39.                 $tDonneesVue_l = array('labels' => $tLabels_l,
  40.                                                                 'composants' => $tComposants_l);
  41.                 $this->load->view('mapointeuse/auth/connexion.php', $tDonneesVue_l);
  42.  
  43.         }
  44. }

Télécharger

Un message, un commentaire ?

Qui êtes-vous ?
Votre message

Pour créer des paragraphes, laissez simplement des lignes vides.