Authentication in CakePHP

February 26th, 2010 by author Leave a reply »

CakePHP ist ein Rapid Development Framework für PHP. Es besteht zwar auf viele Namenskonventionen, aber im Gegenzug nimmt es auch viel Arbeit ab. Um z.b. eine User-Identifizierung mittels FORM durchzuführen ist der Code sehr sehr übersichtlich.

Erst einmal benötigen wir eine Datenbank, welche die Userdaten speichert. Diese Datenbank kann weitere beliebige Attribute besitzen; zur Übersichtlichkeit werden hier nur die nötigsten angegeben.

CREATE TABLE users (
   id bigint unsigned not null auto_increment,
   username varchar(30) not null,
   password varchar(40) not null,
   PRIMARY KEY(id), UNIQUE KEY(username)
);

Aus dieser Tabelle liest CakePHP Authentication die User aus und vergleicht das “verschlüsselte” Passwort mit dem angegeben. Um dies zu erreichen benötigen wir noch einen AppController (UsersController).

class UsersController extends AppController {
	var $components = array(
	   'Auth' => array('loginAction' => 
             array('controller' => 'users', 'action' => 'login'))
	);
        function beforeFilter() {
           // Funktionen angeben, welche man auch ohne Login aufrufen darf
           $this->Auth->allow('register');
           // Falls man andere Namen in der DB hat, kann man diese hier angeben
	   $this->Auth->fields = array(
	       'username' => 'username', 
	       'password' => 'password'
	   );
	}

	function login() {}
		
	function logout() {
	   $this->redirect($this->Auth->logout());
	}
}

Eine sehr übersichtliche Klasse, da die “Kernkomponente” Authentication von CakePHP die meiste Arbeit erledigt. Der Code läuft erst mit CakePHP >1.3.



VN:F [1.9.22_1171]
Rating: 9.0/10 (1 vote cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)
Authentication in CakePHP, 9.0 out of 10 based on 1 rating
Advertisement

Leave a Reply