Fork me on GitHub
Doku / Hilfe
 

Auth

Häufig kommt es vor, dass nur bestimmten Personen ein Zugriff auf eine Web-Applikation bzw. Teile einer Web-Applikation gewährt werden soll. Um die Personen zu authentifizieren, bringt Enlight eine einheitliche Schnittstelle mit. Sie leitet sich von der Zend_Auth Komponente ab, erweitert diese aber um ein paar nützliche Methoden.

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

  1. CREATE TABLE IF NOT EXISTS `test_auth` (
  2. `id` int(11) NOT NULL,
  3. `username` varchar(255) NOT NULL,
  4. `password` varchar(60) NOT NULL,
  5. `sessionID` varchar(50) NOT NULL,
  6. `lastlogin` datetime NOT NULL DEFAULT \'0000-00-00 00:00:00\',
  7. `name` varchar(255) NOT NULL,
  8. `email` varchar(255) NOT NULL,
  9. `active` int(1) NOT NULL,
  10. `failedlogins` int(11) NOT NULL,
  11. `lockeduntil` datetime NOT NULL,
  12. PRIMARY KEY (`id`)
  13. );

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.

  1.  
  2. $authAdapter = new Enlight_Components_Auth_Adapter_DbTable($this->db, 's_core_auth',
  3. 'username', 'password');
  4.  

Die Verwendung der Auth Komponente

Nachdem der Adapter erstellt wurde, kann die Enlight_Auth Komponente wie folgt erzeugt werden

  1. $auth = new Enlight_Components_Auth();

Um eine einfache Authentifizierung durchzuführen, müssen dem Enlight_Auth Objekt noch folgende Daten übergeben werden.

  1. $authAdapter->setIdentity('demo')
  2. ->setCredential(md5('demo'))
  3. ->setLockedUntilColumn('lockeduntil');
  4. $authResponse = $auth->authenticate($authAdapter);
  5. if( $authResponse->isValid() ){
  6. // Yay! Login successful
  7. } else {
  8. // Doh! Login attemept failed
  9. // Count failed login attempts and send a mail to the authorities if necessary.
  10. }
  11.  

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()

  1. $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()

Kommentar schreiben

 

 

 

Captcha Image
Bitte geben Sie die Zahlenfolge in das Textfeld ein
 

Die mit einem * markierten Felder sind Pflichtfelder.

 

Artikel bewerten

Ja Nein
 
 
 

Ähnliche Artikel:

Menü

Die Menu-Komponente dient der einfachen Verwaltung von Menüs in Enlight. Die Menu-Komponente basiert auf der Zend_Navigation-Komponente und hat daher auch alle Methoden und Funktionen dieser Komponente. Die Komponente wurde um einen Adapter und die Möglichkeit, verschachtelte...   [weiterlesen]

Bewertung
 

Snippet

Enlight bringt die Unterstützung für mehrere Sprachen direkt mit. Übersetzungen werden in Textbausteinen gespeichert. Diese Textbausteine werden Snipptes genannt und sind durch die Snippet Komponente umgesetzt. Die Template Dateien müssen so zur Anpassung von Texten oder beim...   [weiterlesen]

Bewertung
 

Currency

Neben der Fähigkeit mit mehreren Sprachen umgehen zu können bietet Enlight auch die Möglichkeit, mit mehreren Währungen umgehen zu können. Dazu bringt Enlight die Currency Komponente mit. Diese leitet sich von der Zend_Currency Komponente ab, erweitert diese aber um eine ID....   [weiterlesen]

Bewertung
 
 

Bestell-Nr.: SW1571

Lieferzeit ca. 5 Tage

€ 1,00

Preise inkl. gesetzlicher
MwSt. zzgl. Versandkosten*

€ 1,00

Preise inkl. gesetzlicher
MwSt. + Versandkosten*