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.