安装身份验证组件
可以使用以下composer命令安装身份验证组件。
composer require zendframework/zend-authentication
概念
通常,开发人员编写一个 php 函数来针对数据源验证用户详细信息。身份验证完成后,身份验证详细信息将保留用于后续请求。Zend Framework推广了这个概念,并提供了两个类,解释如下 :
类 1 Zend\Authentication\Adaptor\AdaptorInterface
此类提供一个方法,authenticate来编写身份验证逻辑。身份验证方法返回 Zend\Authentication\Result类的实例。
Result对象保存身份验证状态;身份验证成功时的标识和错误消息(如果身份验证失败)。身份验证接口和结果类的签名如下所示 −
AdaptorInterface
namespace Zend\Authentication\Adaptor;
public function authenticate() {
// code
}
Result 类
namespace Zend\Authentication;
class Result {
public function __construct($code, $identity, array $messages = []);
}
Zend Framework提供了一个默认的实现,以根据数据库,ldap,http基本和摘要凭据进行身份验证。适配器对将来的任何请求进行身份验证,但不保留详细信息。
类 2 Zend\Authentication\AuthenticationService
身份验证服务是主要组件,它使用已配置的适配器进行身份验证。身份验证完成后,它会保留身份验证详细信息并提供方法,hasIdentity()以检查标识是否可用,hasIdentity()以获取身份验证详细信息,clearIdentity()以清除身份验证详细信息。
使用此身份验证服务的部分代码清单如下 −
$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();
与授权相关的东西被打包成两个单独的模块,它们是 - zend-permissions-acl 和zend-permissions-rbac。zend-permissions-acl 基于访问控制列表,而 zend-permissions-rbac 基于基于角色的访问控制列表。它们提供了 ACL 和 RBAC 概念的高级抽象,并有助于编写企业级应用程序。