- Zend 框架教程
- Zend 框架 - 主页
- Zend 框架 - 简介
- Zend 框架 - 安装
- 骨架应用
- Zend 框架 - MVC 架构
- Zend 框架 - 概念
- Zend 框架 - 服务管理器
- Zend 框架 - 事件管理器
- Zend 框架 - 模块系统
- 应用结构
- Zend 框架 - 创建模块
- Zend 框架 - 控制器
- Zend 框架 - 路由
- Zend 框架 - 视图层
- Zend 框架 - 布局
- 模型和数据库
- 不同的数据库
- 表格和验证
- Zend 框架 - 文件上传
- Zend 框架 - Ajax
- Cookie 管理
- 会话管理
- Zend 框架 - 身份验证
- 电子邮件管理
- Zend 框架 - 单元测试
- Zend 框架 - 错误处理
- Zend 框架 - 工作示例
- Zend 框架有用的资源
- Zend 框架 - 快速指南
- Zend 框架 - 有用的资源
- Zend 框架 - 讨论
Zend 框架 - 身份验证
身份验证是任何 Web 应用程序中最重要且必备的功能之一。Zend Framework 提供了一个单独的组件来处理身份验证,称为zend-authentication。
安装身份验证组件
可以使用以下Composer命令安装身份验证组件。
composer require zendframework/zend-authentication
概念
通常,开发人员编写一个 PHP 函数来根据数据源验证用户详细信息。身份验证完成后,身份验证详细信息将保留用于后续请求。Zend Framework 概括了这个概念并提供了两个类,解释如下 -
类 1 Zend\Authentication\Adaptor\AdaptorInterface
该类提供了一个方法,authenticate来编写身份验证逻辑。authenticate 方法返回Zend\Authentication\Result类的实例。
该Result对象保存身份验证状态;如果身份验证成功,则显示身份;如果身份验证失败,则显示错误消息。验证接口和结果类的签名如下 -
适配器接口
namespace Zend\Authentication\Adaptor; public function authenticate() { // code }
结果类
namespace Zend\Authentication; class Result { public function __construct($code, $identity, array $messages = []); }
Zend 框架提供了一个默认实现来根据数据库、ldap、http 基本和摘要凭证进行身份验证。适配器进行身份验证,但不会保留任何未来请求的详细信息。
类 2 Zend\Authentication\AuthenticationService
AuthenticationService 是主要组件,它使用已配置的适配器进行身份验证。身份验证完成后,它会保留身份验证详细信息并提供方法,hasIdentity()用于检查身份是否可用,getIdentity()用于获取身份验证详细信息,以及clearIdentity()用于清除身份验证详细信息。
使用此 AuthenticationService 的部分代码清单如下 -
$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 概念的高级抽象,并帮助编写企业级应用程序。