Zend Framework - Autenticazione

L'autenticazione è una delle funzionalità più significative e indispensabili in qualsiasi applicazione web. Zend Framework fornisce un componente separato per gestire l'autenticazione, chiamatozend-authentication.

Installa un componente di autenticazione

Il componente di autenticazione può essere installato utilizzando quanto segue Composer comando.

composer require zendframework/zend-authentication

Concetto

Di solito, uno sviluppatore scrive una funzione php per autenticare i dettagli dell'utente rispetto a un'origine dati. Una volta eseguita l'autenticazione, i dettagli di autenticazione vengono mantenuti per le richieste successive. Zend Framework generalizza questo concetto e fornisce due classi, che vengono spiegate di seguito:

Classe 1 Zend \ Authentication \ Adapter \ AdaptorInterface

Questa classe fornisce un unico metodo, authenticateper scrivere la logica di autenticazione. Il metodo di autenticazione restituisce un'istanza diZend\Authentication\Result classe.

Questo Resultl'oggetto detiene lo stato di autenticazione; identità se l'autenticazione riesce e un messaggio di errore, se l'autenticazione fallisce. La firma dell'interfaccia di autenticazione e della classe dei risultati è la seguente:

AdaptorInterface

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

Result class

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

Zend Framework fornisce un'implementazione predefinita per l'autenticazione rispetto alle credenziali di database, ldap, http di base e digest. UnAdaptor autentica ma non conserva i dettagli per eventuali richieste future.

Classe 2 Zend \ Authentication \ AuthenticationService

AuthenticationService è il componente principale, che utilizza l'adattatore già configurato per scopi di autenticazione. Una volta eseguita l'autenticazione, mantiene i dettagli di autenticazione e fornisce metodi,hasIdentity() per verificare se un'identità è disponibile, getIdentity() per ottenere i dettagli di autenticazione e clearIdentity() per cancellare i dettagli di autenticazione.

L'elenco di codice parziale per utilizzare questo AuthenticationService è il seguente:

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

Le cose relative all'autorizzazione sono confezionate come due moduli separati, che sono: zend-permissions-acl e zend-permissions-rbac. Zend-permissions-acl si basa sull'elenco di controllo degli accessi e zend-permissions-rbac si basa sull'elenco di controllo degli accessi basato sui ruoli. Forniscono un'astrazione di alto livello del concetto ACL e RBAC e aiutano nella scrittura dell'applicazione di livello aziendale.