我正在学习 Zend Framework,但我对用法和概念有一些疑问。
我想检查用户是否已登录以允许访问所有页面。如果是,显示页面,如果不是,显示登录页面。
我的主要疑问是我需要使用什么来执行此操作(Zend_Auth、Zend_Acl 等)以及在哪里检查用户是否已登录(在每个控制器或框架中自动检查每个申请)。
我正在学习 Zend Framework,但我对用法和概念有一些疑问。
我想检查用户是否已登录以允许访问所有页面。如果是,显示页面,如果不是,显示登录页面。
我的主要疑问是我需要使用什么来执行此操作(Zend_Auth、Zend_Acl 等)以及在哪里检查用户是否已登录(在每个控制器或框架中自动检查每个申请)。
您要使用的工具是Zend_Auth,当您掌握它的窍门时,它非常容易使用。
检查用户是否登录可以很简单:-
$auth = Zend_Auth::getInstance();
if($auth->hasIdentity()) $loggedIn = true;
请参阅Rob Allen 关于 Zend Auth 入门的优秀教程。
我使用的方法是设置一个负责授权和访问控制的用户类,并将其作为Action Helper注入我的应用程序,这样我就可以在我的任何控制器中执行以下操作:-
$this->user->checkSomething();
授权部分需要影响您不希望公开的站点的所有部分,并且每个受影响的控制器都需要检查用户是否已登录。对于访问控制,这是基于每个角色/每个资源完成的,具体取决于您需要多细粒度。请参阅手册中的ACL和AUTH。
想检查用户是否登录 ZendFramework?尝试这个:
将其放在控制器的任何位置以“调试”,并将其放在代码的顶部或开头:
if (Zend_Auth::getInstance()->hasIdentity()) echo "oh yeah I'm logged in lol"; die;