<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Luizz &#187; autenticazione</title>
	<atom:link href="http://www.luizz.it/tag/autenticazione/feed" rel="self" type="application/rss+xml" />
	<link>http://www.luizz.it</link>
	<description>Appunti di lavoro per lo sviluppo di applicazioni WEB con CakePHP</description>
	<lastBuildDate>Thu, 02 Sep 2010 07:12:27 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Auth Component: attivazione e quickstart</title>
		<link>http://www.luizz.it/70/cakephp/auth-component</link>
		<comments>http://www.luizz.it/70/cakephp/auth-component#comments</comments>
		<pubDate>Fri, 18 Jan 2008 11:10:09 +0000</pubDate>
		<dc:creator>Luizz</dc:creator>
				<category><![CDATA[CakePHP]]></category>
		<category><![CDATA[Components]]></category>
		<category><![CDATA[autenticazione]]></category>
		<category><![CDATA[auth]]></category>
		<category><![CDATA[passo passo]]></category>

		<guid isPermaLink="false">http://www.luizz.it/70/cakephp/auth-component</guid>
		<description><![CDATA[Tutorial per attivare il componente Auth in cakePHP, il sistema nativo per l'autenticazione degli utenti.]]></description>
			<content:encoded><![CDATA[<p><strong>Attivazione del component Auth</strong></p>
<p>Ho appena installato CakePHP e configurato il database completamente vuoto.<br />
Mi appare la <a href="http://www.luizz.it/wp-content/uploads/2008/01/startpage.gif" title="Pagina iniziale di CakePHP dopo l’installazione">pagina iniziale di Cake, </a>con le indicazioni canoniche.</p>
<p>Creo il file <em>/app/app_controller.php</em> e dichiaro come componente <em>Auth</em></p>
<pre><code>class AppController extends Controller {
	var $components = array('Auth');
}</code></pre>
<p>Il component è subito attivato e ricaricando la pagina si ottiene un errore perchè si è stati reindirizzati all&#8217;URL <em>/users/login</em>.<br />
In pratica essendo attivato in ogni pagina richiesta, il sistema riconosce che l&#8217;utente non è autenticato e considera necessaria l&#8217;autenticazione per accedere a qualsiasi pagina del sito.<br />
Quindi avviene il reindirizzamento verso l&#8217;indirizzo di default <em>/users/login</em> per far si che l&#8217;utente si possa autenticare.</p>
<p>Chiaramente si riceve un messaggio di errore se la pagina ancora non esiste, ovvero il controller e la view relativa.</p>
<p><strong>La struttura necessaria</strong></p>
<p>Servono quindi:</p>
<ul>
<li>un <strong>model </strong>che permetta di conservare e confrontare i dati dell&#8217;utente per l&#8217;accesso (userid e password)</li>
<li>un <strong>controller </strong>per le azioni relative all&#8217;utente (login, logout)</li>
<li>una <strong>view </strong>per il form di autenticazione</li>
</ul>
<p><strong>La tabella</strong></p>
<pre><code>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;</code></pre>
<p>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).</p>
<p><strong>Il model</strong></p>
<pre><code>class User extends AppModel {
	var $name = 'User';
}</code></pre>
<p><strong>Il controller</strong></p>
<pre><code>class UsersController extends AppController {

	var $name = 'Users';
	var $helpers = array('Html', 'Form' );

	function login(){
	}
}</code></pre>
<p><strong>Il view (login.ctp)</strong></p>
<pre><code>
<p class="login">
check('Auth.login')) $session->flash('Auth.login'); ?>
<h2>Login</h2>

create('User', array('action' =&gt; 'login'));?&gt;
        input('username');?&gt;
        input('password');?&gt;
        submit('Login');?&gt;
    end(); ?&gt;</code></pre>
<p>A questo punto, accedendo a qualsiasi pagina dell&#8217;applicazione, Cake intercetta la richiesta e prima di soddisfarla, controlla che l&#8217;utente sia autenticato.<br />
In caso negativo esegue un redirect sulla pagina di login.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.luizz.it/70/cakephp/auth-component/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
