standardLib – PHP framework
Authentication
Dipendenze: Security
Descrizione
Il modello Authentcation svolge essenzialmente due procedure:
- Verifica dei dati di login
- Verifica se un utente è autenticato
I dati passati dal form del login vengono intercettati. L’autenticazione ha luogo se esiste una corrispondenza tra nome utente e password e se il campo chiave di controllo contiene “1″ (account verificato). La prova di autenticazione è rappresentata dall’inserimento dell’ID utente nella variabile di sessione auth. Questo, oltre a permettere di capire se l’utente ha correttamente svolto la procedura di autenticazione, permette anche di poter identificare in ogni momento l’utente.
$id_user = $_SESSION['auth']
Lista dei parametri
| Parametro | Descrizione | Default |
|---|---|---|
| userTable | Il nome della tabella utenti del databse | Valore di DEFAULT_USERS_TABLE in config.php |
| usernameField | Il nome utilizzato per il campo username della tabella utenti | Valore di DEFAULT_USERNAME_FIELD in config.php |
| passwordField | Il nome utilizzato per il campo password della tabella utenti | Valore di DEFAULT_PASSWORD_FIELD in config.php |
| keyField | Il nome utilizzato per il campo codice di controllo della tabella utenti | Valore di DEFAULT_KEY_FIELD in config.php |
| primaryField | Il nome utilizzato per il campo chiave primaria della tabella utenti | Valore di DEFAULT_USER_PRIMARY_KEY_FIELD in config.php |
| cryptMethod | Il metodo di cifratura della password. Vi sono tre valori possibili: md5, sha1 o 0 per non applicare cifrature (deprecato) | Valore di DEFAULT_CRYPT_METHOD in config.php |
| usernameName | Il nome del campo del form nel quale viene richiesto il nome utente | Valore di DEFAULT_USERNAME_FORM_NAME in config.php |
| passwordName | Il nome del campo del form nel quale viene richiesta la password | Valore di DEFAULT_PASSWORD_FORM_NAME in config.php |
| bfp | Se impostato con valore 1, implementa automaticamente il modello bruteForcePrevention. L’implementazione avviene direttamente all’interno del modello Authentication. | 0 |
| redirect | Se redirect è settato a 0, il metodo isAuth() (che verifica se l’utente ha superato la procedura di autenticazione) ritorna TRUE o FALSE. Se invece redirect è settato ad esempio in questo modo login.php, significa che: Se l’utente è autenticato, non succede nulla ed il codice continua ad essere eseguito. Mentre se l’utente non è autenticato, viene reindirizzato alla pagina login.php e l’esecuzione del codice viene interrotta. |
Valore di LOGIN_URL in config.php |
| remembermeName | Il nome del campo “ricordami” qualora lo si volesse utilizzare | rememberme |
Lista dei metodi e delle proprietà
| Proprietà – Metodo | Descrizione | Return |
|---|---|---|
| verifyLogin() | Verifica la correttezza dei dati di autenticazione ed in caso positivo valorizza la variabile di sessione auth con il valore dell’ID dell’utente | TRUE: Se l’autenticazione è avvenuta FALSE: Se l’autenticazione non è avvenuta |
| isAuth() | Da inserire all’inizio di ogni pagina per la quale è richiesta l’autenticazione; verifica che l’autenticazione sia avvenuta. | TRUE: Se l’utente è autenticato FALSE: Se l’utente non è autenticato (con redirect impostato a 0) |
Login: esempio minimo
Bisognerà innanzitutto predisporre il form per il login
Ed ora la pagina alla quale punta il form avrà questo semplice aspetto
include 'standardLib/engine.php';
if(isset($_POST['submit']))
{
if($model->verifyLogin())
{
// Cosa fare in caso di autenticazione
}
else
{
// Cosa fare in caso di mancata autenticazione
}
}
Pagine protette: esempio minimo
Le pagine che richiedono l’autenticazione, dovranno iniziare con questo semplice codice:
include 'standardLib/engine.php';
_setOptions(array('redirect' => false));
if(!$model->isAuth())
{
//cosa fare se l'utente non risulta autenticato
}
Oppure
include 'standardLib/engine.php';
_setOptions(array("redirect" => "login.php");
$model->isAuth()
In questo secondo caso, se l’utente è autenticato, continua l’esecuzione del codice. Altrimenti avviene il redirect alla pagina login.php

