Zend Framework - Autenticação
A autenticação é um dos recursos mais significativos e obrigatórios em qualquer aplicativo da web. Zend Framework fornece um componente separado para lidar com a autenticação, que é chamado dezend-authentication.
Instale um componente de autenticação
O componente de autenticação pode ser instalado usando o seguinte Composer comando.
composer require zendframework/zend-authentication
Conceito
Normalmente, um desenvolvedor escreve uma função php para autenticar os detalhes do usuário em uma fonte de dados. Depois que a autenticação é feita, os detalhes da autenticação são mantidos para solicitações subsequentes. Zend Framework generaliza este conceito e fornece duas classes, que são explicadas abaixo -
Classe 1 Zend \ Authentication \ Adapter \ AdaptorInterface
Esta classe fornece um único método, authenticatepara escrever a lógica de autenticação. O método de autenticação retorna uma instância deZend\Authentication\Result classe.
este Resultobjeto mantém o status de autenticação; identidade se a autenticação for bem-sucedida e uma mensagem de erro se a autenticação falhar. A assinatura da interface de autenticação e classe de resultado é a seguinte -
AdaptorInterface
namespace Zend\Authentication\Adaptor;
public function authenticate() {
// code
}
Result class
namespace Zend\Authentication;
class Result {
public function __construct($code, $identity, array $messages = []);
}
O Zend Framework fornece uma implementação padrão para autenticação no banco de dados, ldap, http básico e credenciais digest. AAdaptor autentica, mas não mantém os detalhes para quaisquer solicitações futuras.
Classe 2 Zend \ Authentication \ AuthenticationService
O AuthenticationService é o componente principal, que usa o adaptador já configurado para fins de autenticação. Uma vez que a autenticação é feita, ele persiste os detalhes de autenticação e fornece métodos,hasIdentity() para verificar se uma identidade está disponível, getIdentity() para obter os detalhes de autenticação e clearIdentity() para limpar os detalhes de autenticação.
A listagem parcial do código para usar este AuthenticationService é a seguinte -
$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();
O material relacionado à autorização é empacotado como dois módulos separados, que são - zend-permissions-acl e zend-permissions-rbac. O zend-permissions-acl é baseado na lista de controle de acesso e o zend-permissions-rbac é baseado na lista de controle de acesso baseada na função. Eles fornecem abstração de alto nível do conceito de ACL e RBAC e ajudam a escrever o aplicativo de nível empresarial.