Auth Component: creare un utente, eseguire il login e il logout

Una volta attivato il component, creata la tabella degli utenti e la maschera per il login, è il momento di creare un utente per verificare il corretto funzionamento dell’autenticazione. Ecco due modi di farlo.

Inserimento manuale nella tabella users

Posso inserire i dati nella tabella attraverso il client MySQL o un altro tool grafico (io uso phpMyAdmin ) tenendo presente che la password deve essere converita con la funzione hash utilizzata da Cake, la seguente:

hashpwd = sha1 ( salt + plain_password )

dove salt è la stringa di sicurezza configurata durante l’installazione di CakePHP presente nel file \app\config\core.php.
sha1 è l’algoritmo utilizzato per default da Cake per la funzione hash, ma è possibile cambiare metodo con MD5 e SHA256

Gestione utenti

Creo una gestione completa degli utenti sulla tabella users usando il bake da riga di comando così da poter inserire il primo utente.
A questo punto, seguendo il naming canonico, accedo alla mia gestione degli utenti http://mywebspace/users/ e…. vengo rimandato alla pagina di login !!
Per accedere, almeno temporaneamente alle azioni di users, si interviene su app_controller.php, dove avevamo attivato $authComponent e si inserisce


function beforeFilter()	{
     $this->Auth->allow();
}

A questo punto cake concede l’accesso a qualsiasi azione e possiamo andare a creare l’utente che ci interessa.
Finito l’inserimento, rimuoviamo la riga con il metodo allow() e proviamo a d accedere di nuovo a http://mywebspace/users/.
Ci dovrebbe chiedere nuovamente la userdi – password, ma questa volta si può inserire l’utente inserito e accedere alla sezione della gestione utenti.

Da notare due cose: quando inserisce ad esempio l’URL http://mywebspace/articles/view/234 l’utente viene rimandato a http://mywebspace/users/login e dopo aver effettuato il login, viene reindirizzato sull’URL da lui richiesta in precedenza.
L’altra cosa da notare è che sulla password immessa in fase di inserimento utente, viene automaticamente eseguito l’hash prima del salvataggio in tabella, senza bisogno di aggiungere alcun codice nel controller, nel model o altrove.

Il log out
Per chiudere la sessione è sufficente creare un’action nel controller nel quale invocare il metodo logout di Auth

function logout(){
		$this->Session->setFlash("L\'utente è uscito regolarmente!");
		$this->redirect($this->Auth->logout());
	}

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *