Attivazione del component Auth
Ho appena installato CakePHP e configurato il database completamente vuoto.
Mi appare la pagina iniziale di Cake, con le indicazioni canoniche.
Creo il file /app/app_controller.php e dichiaro come componente Auth
class AppController extends Controller {
var $components = array('Auth');
}
Il component è subito attivato e ricaricando la pagina si ottiene un errore perchè si è stati reindirizzati all’URL /users/login.
In pratica essendo attivato in ogni pagina richiesta, il sistema riconosce che l’utente non è autenticato e considera necessaria l’autenticazione per accedere a qualsiasi pagina del sito.
Quindi avviene il reindirizzamento verso l’indirizzo di default /users/login per far si che l’utente si possa autenticare.
Chiaramente si riceve un messaggio di errore se la pagina ancora non esiste, ovvero il controller e la view relativa.
La struttura necessaria
Servono quindi:
- un model che permetta di conservare e confrontare i dati dell’utente per l’accesso (userid e password)
- un controller per le azioni relative all’utente (login, logout)
- una view per il form di autenticazione
La tabella
CREATE TABLE IF NOT EXISTS `users` (
`id` int(5) unsigned NOT NULL,
`username` varchar(30) NOT NULL,
`password` varchar(30) NOT NULL,
`nome` varchar(60) NOT NULL,
`cognome` varchar(100) NOT NULL,
`active` tinyint(1) unsigned NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
Gli unici campi essenziali sono username e password. Si possono utilizzare anche nomi diversi per questi campi, purchè si impostino correttamente nel component (vedi sotto).
Il model
class User extends AppModel {
var $name = 'User';
}
Il controller
class UsersController extends AppController {
var $name = 'Users';
var $helpers = array('Html', 'Form' );
function login(){
}
}
Il view (login.ctp)
check('Auth.login')) $session->flash('Auth.login'); ?>
Login
create('User', array('action' => 'login'));?>
input('username');?>
input('password');?>
submit('Login');?>
end(); ?>
A questo punto, accedendo a qualsiasi pagina dell’applicazione, Cake intercetta la richiesta e prima di soddisfarla, controlla che l’utente sia autenticato.
In caso negativo esegue un redirect sulla pagina di login.
1 comment for “Auth Component: attivazione e quickstart”