Zend Framework - Authentifizierung

Die Authentifizierung ist eine der wichtigsten und wichtigsten Funktionen in jeder Webanwendung. Zend Framework bietet eine separate Komponente für die Authentifizierung, die als bezeichnet wirdzend-authentication.

Installieren Sie eine Authentifizierungskomponente

Die Authentifizierungskomponente kann wie folgt installiert werden Composer Befehl.

composer require zendframework/zend-authentication

Konzept

Normalerweise schreibt ein Entwickler eine PHP-Funktion, um die Benutzerdetails anhand einer Datenquelle zu authentifizieren. Sobald die Authentifizierung abgeschlossen ist, bleiben die Authentifizierungsdetails für nachfolgende Anforderungen erhalten. Zend Framework verallgemeinert dieses Konzept und bietet zwei Klassen, die im Folgenden erläutert werden:

Klasse 1 Zend \ Authentication \ Adapter \ AdaptorInterface

Diese Klasse bietet eine einzige Methode: authenticateum die Authentifizierungslogik zu schreiben. Die Authentifizierungsmethode gibt eine Instanz von zurückZend\Authentication\Result Klasse.

Diese ResultObjekt hält den Authentifizierungsstatus; Identität, wenn die Authentifizierung erfolgreich ist, und eine Fehlermeldung, wenn die Authentifizierung fehlschlägt. Die Signatur der Authentifizierungsschnittstelle und der Ergebnisklasse lautet wie folgt:

AdaptorInterface

namespace Zend\Authentication\Adaptor; 
public function authenticate() { 
   // code 
}

Result class

namespace Zend\Authentication; 
class Result { 
   public function __construct($code, $identity, array $messages = []); 
}

Das Zend Framework bietet eine Standardimplementierung zur Authentifizierung anhand der Anmeldeinformationen für Datenbank, LDAP, http Basic und Digest. EinAdaptor authentifiziert, behält aber die Details für zukünftige Anfragen nicht bei.

Klasse 2 Zend \ Authentication \ AuthenticationService

Der AuthenticationService ist die Hauptkomponente, die den bereits konfigurierten Adapter zur Authentifizierung verwendet. Sobald die Authentifizierung abgeschlossen ist, werden die Authentifizierungsdetails beibehalten und Methoden bereitgestellt.hasIdentity() um zu überprüfen, ob eine Identität verfügbar ist, getIdentity() um die Authentifizierungsdetails zu erhalten und clearIdentity() um die Authentifizierungsdetails zu löschen.

Die teilweise Codeliste zur Verwendung dieses AuthenticationService lautet wie folgt:

$adap = new Adapter($username, $password);  
$auth = new AuthenticationService(); 
$result = $auth->authenticate($adap);  
if($result->isValid) { 
   $identity = $auth->getIdentity(); 
} else { 
   // process $result->getMessages() 
}  
// clear 
$auth->clearIdentity();

Die mit der Autorisierung verbundenen Dinge sind als zwei separate Module verpackt: zend-permissions-acl und zend-permissions-rbac. Die zend-permissions-acl basiert auf der Zugriffssteuerungsliste und die zend-permissions-rbac basiert auf der rollenbasierten Zugriffssteuerungsliste. Sie bieten eine allgemeine Abstraktion des ACL- und RBAC-Konzepts und helfen beim Schreiben der Anwendung für Unternehmen.