Codeigniter Redux Authentication: libreria per l’autenticazione

Sabato, Luglio 5, 2008 16:24 scritto da neryo

Codeigniter Redux Authentication: libreria per l’autenticazione
In questo caldissimo mese di luglio vi voglio presentare Redux Authtentication library, un pacchetto per l’autenticazione da utilizzare con il “nostro” amato framework php Codeigniter. Questa libreria ci consente di creare in modo facile e super veloce l’accesso protetto al backend dei nostri progetti e di avere una base solida su cui costruire e personalizzare la sicurezza della nostra applicazione web.

Le features di questa libreria sono:

  • Registrazione degli utenti
  • Login e logout
  • Gestione perdita password
  • Gestione gruppi utenti
  • Sistema di Ban degli utenti
  • Focalizzata sulla sicurezza

Come accennato, l’installazione di questa libreria per Codeigniter è molto semplice e viene fatta seguendo questi pochi step:

  • Creare il database della nostra applicazione codeigniter oppure utilizzare il database esistente (se il progetto è già iniziato), ed importare il file install.sql (contenuto nel pacchetto) nel nostro database, contenente le tabelle per Redux.
  • All’interno del pacchetto della libreria Redux Authentication troveremo la cartella application in cui sono contenute altre due cartelle config/ e libraries/ in cui all’interno ci sono rispettivamente il file per la configurazione della libreria e in libraries il file contenente la classe con i metodi Redux. Chiaramente questo contenuto dovrà essere copiato nella nostra cartella application della nostra applicazione nelle rispettive cartelle.
  • Un volta fatto questo andremo nel file config/config.php e abiliteremo le variabili di sessione:
    1. $config[’sess_encrypt_cookie’]  = TRUE;
    2. $config[’sess_use_database’]    = TRUE;
    3. $config[’sess_match_ip’]        = TRUE;
    4. $config[’sess_match_useragent’] = TRUE;

    Nel mio caso per la configurazione delle sessioni su DB Mysql ho seguito questa guida http://codeigniter.com/wiki/DB_Session/

  • Sistemate le sessioni possiamo configurare a dovere il file config/redux_auth.php, in cui non mi addentro perchè è abbastanza semplice e ben commentato, poi non mi pare abbia bisogno di particolari modifiche.
  • Per comodità, sarebbe opportuno configurare in config/autoload.php il caricamento automatico della libreria redux, perchè altrimenti bisogna ricordarsi di farlo ogni volta che la si utilizza nei metodi del controller. Ricordandoci che Redux carica in automatico le librerie per le email e le sessioni.
    1. $autoload[‘libraries’] = array("redux_auth");

Dopo questa breve configurazione sarà possibile sfruttare tutta la potenza della libreria Redux Authentication, all’interno del pacchetto nei files di esempio avremo il controller user.php che illustra molto bene come vengono implementate le funzioni di base per costruire una autenticazione completa e anche come si apprestano facilmente alla personalizzazione.

Per farvi un esempio di semplice controller con il solo login:

  1. class user extends Controller
  2. {
  3.  
  4.     function index ()
  5.     {
  6.         echo ‘This is the user Controller’;
  7.     }
  8.  
  9.     function login ()
  10.     {
  11.         $rules[‘email’]    = ‘trim|required’;
  12.         $rules[‘password’] = ‘trim|required’;
  13.  
  14.         $this->validation->set_rules($rules);
  15.  
  16.         if($this->validation->run())
  17.         {
  18.             $login = $this->redux_auth->login($this->input->post(‘email’), $this->input->post(‘password’));
  19.  
  20.             $i = ($login) ? redirect() : ‘false’;
  21.         }
  22.         else
  23.         {
  24.             $this->load->view(‘login’);
  25.         }
  26.     }
  27. }

Chiaramente se utilizziamo il controller già fatto dovremmo creare poi tutte le viste che vengono richiamate da esso. Per chi è inesperto e vuole comunque facilitarsi la vita all’inizio gli consiglio di scaricarle dal secondo link nei riferimenti qui sotto.

Un esempio di come effettuare il controllo nelle pagine protette lato backend:

  1. class Admin extends Controller {
  2.  
  3.         function Admin(){
  4.                 parent::Controller();
  5.         }
  6.  
  7.         function index(){
  8.  
  9.                 if($this->redux_auth->logged_in()){
  10.  
  11.                         []
  12.  
  13.                 }else{
  14.  
  15.                         []
  16.  
  17.                 }
  18.         }

E’ tutto.. quindi buona autenticazione con Redux!

Riferimenti:

http://code.google.com/p/reduxauth/
http://codeigniter.com/forums/viewthread/72525/
http://codeigniter.com/wiki/DB_Session/
http://codeigniter.com/user_guide/libraries/sessions.html

1 Stella2 Stelle3 Stelle4 Stelle5 Stelle (1 voti, media: 4 di 5)
Loading ... Loading ...

4 Risposte a “Codeigniter Redux Authentication: libreria per l’autenticazione”

  1. Alessandro dice:

    06-08-2008 alle 17:28

    Meravigliosa libreria, peccato che mi serva qualcosa che giri in PHP4

  2. alexsandrino dice:

    16-09-2008 alle 13:43

    Ho installato la libreria senza difficoltà , le indicazioni sono più che chiare, ho solo un problema… gli account registrati nel momento che si loggano ottengono sempre User Not Active. Come si attivano gli account? E’ possibile attivare automaticamente tutti i nuovi account?

  3. admin dice:

    16-09-2008 alle 14:51

    @alexsandrino: certo.. dai un occhiata alla funzione della libreria activate dentro libraries.. basta che gli passi l activation_code.. cmq questa e’ solo un implementazione d’esempio del controller..

  4. alexsandrino dice:

    17-09-2008 alle 07:41

    ok, risolto! Grazie per le indicazioni. Il problema è nella funzione login() che ritorna un mix di valori booleani e stringhe. In questa pagina http://code.google.com/p/reduxauth/issues/detail?id=12 la descrizione ed il fix :-)

Lascia una commento

(*) campi obbligatori

Spam protection by WP Captcha-Free