Zend: autenticarsi con credenziali di phpbb3
Ho iniziato da poco a sviluppare applicazioni web, basate sull’architettura MVC, appoggiandomi a Zend Framework, uno dei migliori (se non il migliore) framework php che permette di costruire in modo semplice e veloce applicazioni web in php.
Come ogni applicazione che si rispetti ho deciso di creare anche una sezione nascosta accessibile solo dopo aver effettuato una autenticazione.
Avendo già un forum phpbb3 installato ho pensato bene di sfruttare le credenziali conservate nel database del forum per permettere l’autenticazione degli utenti ma come fare?
Zend, con l’API Zend_Auth mette a disposizione degli oggetti potentissimi, chiamati adapter, per permettere vari tipi di autenticazione. Con Zend_Auth_Adapter_DbTable, per esempio, si ha la possibilità di fare l’autenticazione con delle credenziali conservate in un database, sembra essere proprio quello che mi serve ma non è così.
Purtroppo per me la password dell’utente di phpbb3 è salvata nel database utilizzando un algoritmo di criptazione fornito dal framework phpass, tale algoritmo non è implementato all’interno dell’oggetto, adapter, Zend_Auth_Adapter_DbTable
(che ne implementa comunque altri).
Per fortuna Zend è molto flessibile e si può ovviare a questo problema costruendo un proprio adapter estendendo la classe, o oggetto, Zend_Auth_Adapter_Interface
, il quale sfrutterà le funzioni della classe PassowHash
presente nel framework phpass.