Auth Component: attivazione e quickstart

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)


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

  1. marcoc
    5 giugno 2008 at 15:36

    Sembra che al codice di login.ctp manchi qualcosa…

Lascia un commento

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