Authentication in CakePHP

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.




Beitrag veröffentlicht

in

,

von

Schlagwörter:

Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert