Zend Framework - Authentification

L'authentification est l'une des fonctionnalités les plus importantes et les plus indispensables de toute application Web. Zend Framework fournit un composant séparé pour gérer l'authentification, qui est appelézend-authentication.

Installer un composant d'authentification

Le composant d'authentification peut être installé à l'aide des éléments suivants Composer commander.

composer require zendframework/zend-authentication

Concept

Habituellement, un développeur écrit une fonction php pour authentifier les détails de l'utilisateur par rapport à une source de données. Une fois l'authentification effectuée, les détails d'authentification sont conservés pour les demandes suivantes. Zend Framework généralise ce concept et fournit deux classes, qui sont expliquées ci-dessous -

Classe 1 Zend \ Authentication \ Adapter \ AdaptorInterface

Cette classe fournit une méthode unique, authenticatepour écrire la logique d'authentification. La méthode authenticate renvoie une instance deZend\Authentication\Result classe.

Ce Resultl'objet détient le statut d'authentification; identité si l'authentification réussit et un message d'erreur, si l'authentification échoue. La signature de l'interface d'authentification et de la classe de résultat est la suivante -

AdaptorInterface

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

Result class

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

Le Zend Framework fournit une implémentation par défaut pour s'authentifier par rapport aux informations d'identification de la base de données, ldap, http basic et digest. UnAdaptor authentifie mais ne conserve pas les détails pour les demandes futures.

Classe 2 Zend \ Authentication \ AuthenticationService

AuthenticationService est le composant principal, qui utilise l'adaptateur déjà configuré à des fins d'authentification. Une fois l'authentification effectuée, il persiste les détails d'authentification et fournit des méthodes,hasIdentity() pour vérifier si une identité est disponible, getIdentity() pour obtenir les détails d'authentification et clearIdentity() pour effacer les détails d'authentification.

La liste partielle du code pour utiliser ce AuthenticationService est la suivante -

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

Les éléments liés à l'autorisation sont regroupés en deux modules distincts, qui sont - zend-permissions-acl et zend-permissions-rbac. Le zend-permissions-acl est basé sur la liste de contrôle d'accès et le zend-permissions-rbac est basé sur la liste de contrôle d'accès basé sur les rôles. Ils fournissent une abstraction de haut niveau du concept ACL et RBAC et aident à écrire l'application de niveau entreprise.