Come visto negli appunti precedenti, con la semplice attivazione il componente ha dei comportamenti predefiniti durante la fase di autenticazione che potrebbe essere necessario cambiare.
Inoltre vengono messi a disposizione metodi e proprietà utili, oltre che per la gestione dei permessi, in varie occasioni.
Personalizzare l’autenticazione
Impostando alcuni attributi, si determinano i comportamenti del componente.
Di seguito riporto la descrizione di alcune impostazioni di interesse legate all’autenticazione.
$autoRedirect = true
Determina se dopo l’avvenuta autenticazione AuthComponent redireziona automaticamente alla pagina cercata o no.
$fields = array('username' => 'username', 'password' => 'password')
Permette di specificare il nome dei campi usati nell’$userModel diversi da quelli di default necessari all’identificazione.
Ad esempio: array(‘username’ => ‘login_name’, ‘password’ => ‘passwd’).
$loginError = null
Si può impostare il messaggio di errore che viene utilizzato per comunicare la mancata corrispondenza di userid e password.
Questo è l’unico messaggio che viene visualizzato per una questione di sicurezza, così non vengono fornite indicazioni circa l’errore di autenticazione occorso.
Il messaggio qui impostato non viene visualizzato automaticamente nella session Flash, ma deve essere impostato nella view nel seguente modo
if ($session->check(‘Message.auth’)) $session->flash(‘auth’);
$authError = null
Messaggio di errore che appare quando si tenta di accedere a un’area per la quale è richiesta l’autenticazione.
$loginRedirect = null
Quando si richiede l’accesso a una pagina e si viene ridirezionati alla pagina di login $loginAction, dopo l’autenticazione l’utente viene rimandato alla pagina inizialmente richiesta, senza doverla richiedere nuovamente dopo il login.
Se $loginAction non è impostata, l’utente viene ridirezionato alla pagina specificata in $loginRedirect
$logoutRedirect = null
L’azione di defautl alla quale viene ridiretto l’utente dopo il logout. L’URL del redirect viene fornita da AuthComponent::logout() che di default restituisce $loginAction.
$loginAction = null
E’ una stringa o un array che definisce l’URL per la richiesta di login.
Se non impostata, AuthComponent la imposta come (pluralize) $userModel / login , a meno che non venga impostata $loginRedirect
$userModel = 'User'
Il nome del Model utilizzato per eseguire l’autenticazione degli utenti, ovvero l’oggetto che detiene username e password degli utenti. Come visto, il valore di default è il model User.
$userScope = array()
Si possono aggiungere delle condizioni aggiuntive per la verifica dell’utente.
Ad esempio se si vuole permettere l’accesso ai soli utenti che abbiano il campo “attivato” abilitato allora si può definire array(‘User.attivato’ => 1). In questo modo, anche se l’utente inserisce la giusta userid e password gli verrà permesso l’accesso solo se il suo stato è “attivato”.
$sessionKey = null
Definisce il nome della chiave di sessione che contiene i dati sull’utente autenticato.
Se non è specificato il valore di default è “Auth.{$userModel}”.
Queste impostazioni devono essere definite nel controller
function beforeFilter(){
$this->Auth->authError = "Per accedere alla pagina richiesta bisogna autenticarsi";
$this->Auth->loginError = 'Tentativo di accesso fallito. Controllare username e password.';
}
1 comment for “Auth Component: pieno controllo dell’autenticazione”