Zend框架-身份验证

身份验证是任何Web应用程序中最重要且必不可少的功能之一。Zend Framework提供了一个单独的组件来处理身份验证,称为zend-authentication

安装身份验证组件

可以使用以下Composer命令安装身份验证组件。

composer require zendframework/zend-authentication

概念

通常,开发人员编写php函数以根据数据源验证用户详细信息。身份验证完成后,身份验证详细信息将保留用于后续请求。Zend Framework概括了这个概念,并提供了两个类,下面对此进行了解释-

1类Zend \ Authentication \ Adaptor \ AdaptorInterface

此类提供一个单一方法,进行身份验证以编写身份验证逻辑。authenticate方法返回Zend \ Authentication \ Result类的实例。

Result对象保存身份验证状态;如果身份验证成功,则返回身份;如果身份验证失败,则返回错误消息。authenticate接口和结果类的签名如下:

适配器接口

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-aclzend-permissions-rbac。zend-permissions-acl基于访问控制列表,而zend-permissions-rbac基于基于角色的访问控制列表。它们提供了ACL和RBAC概念的高级抽象,并有助于编写企业级应用程序。

作者:terry,如若转载,请注明出处:https://www.web176.com/zendframework/265.html

(0)
打赏 支付宝 支付宝 微信 微信
terryterry
上一篇 2020年10月23日 上午10:51
下一篇 2020年10月23日 上午11:23

相关推荐

发表回复

登录后才能评论