Auth
Der Datenbank Adapter
Enlight bringt einen Auth-Adapter mit, der auf ein Datenbanksystem zugreifen kann, um an die Authentifikationsmerkmale zu gelangen. Dieser Adapter beinhaltet einen Mechanismus, der Brute-Force Angriffe erschwert. Die Datenbank Tabelle, die der Adapter erwartet, könnte so aussehen
CREATE TABLE IF NOT EXISTS `test_auth` ( `id` int(11) NOT NULL, `username` varchar(255) NOT NULL, `password` varchar(60) NOT NULL, `sessionID` varchar(50) NOT NULL, `lastlogin` datetime NOT NULL DEFAULT \'0000-00-00 00:00:00\', `name` varchar(255) NOT NULL, `email` varchar(255) NOT NULL, `active` int(1) NOT NULL, `failedlogins` int(11) NOT NULL, `lockeduntil` datetime NOT NULL, PRIMARY KEY (`id`) );
Folgende Parameter können dem Konstruktor beim instanziieren mitgegeben werden
- db: Zend_Database
- tableName: Hier wird der Name der Tabelle hinterlegt, welche die Login Daten bereithält.
- identityColumn: Der Name der Tabellenspalte, in der eine eindeutige Benutzerkennung steht.
- credentialColumn: Der Name der Tabellenspalte in der MD5 Hash das Kennwort gespeichert wird.
- credentialTreatment: SQL Befehl der die Auswertung des Kennwortes beeinflusst.
$authAdapter = new Enlight_Components_Auth_Adapter_DbTable($this->db, 's_core_auth', 'username', 'password');
Die Verwendung der Auth Komponente
Nachdem der Adapter erstellt wurde, kann die Enlight_Auth Komponente wie folgt erzeugt werden
$auth = new Enlight_Components_Auth();
Um eine einfache Authentifizierung durchzuführen, müssen dem Enlight_Auth Objekt noch folgende Daten übergeben werden.
$authAdapter->setIdentity('demo') ->setLockedUntilColumn('lockeduntil'); $authResponse = $auth->authenticate($authAdapter); if( $authResponse->isValid() ){ // Yay! Login successful } else { // Doh! Login attemept failed // Count failed login attempts and send a mail to the authorities if necessary. }
Mit der Methode setIdentity()setCredential()setLockedUntilColumn()
In der Standard-Einstellung wird das Konto für 30 Sekunden gesperrt. Dieser Wert kann durch die Methode setLockSeconds()
Durch den Aufruf der Methode authenticate()setAdapter()authenticate()
$auth->setAdapter($authAdapter);
Die Authentifizierung liefert ein Zend_Auth_Response Objekt zurück. Zum Überprüfen, ob die Authentifizierung erfolgreich war, muss die Methode isValid()
Refresh
Die regelmäßige Validierung kann durch die Methode refresh()setAdapter()refresh()
Die Gültigkeit der Authoriserung kann über die Methode setExpiryColumn()
Artikel bewerten
Ähnliche Artikel:
Bestell-Nr.: SW1571
Lieferzeit ca. 5 Tage
Preise inkl. gesetzlicher
MwSt. zzgl. Versandkosten*
Preise inkl. gesetzlicher
MwSt. + Versandkosten*