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.