我正在学习Zend框架,但对使用和概念有一些疑问。
我想检查用户是否已登录,以允许访问所有页面。如果是,则显示页面;如果不是,则显示登录页面。
我的主要疑问是我需要使用什么来实现这个功能(Zend_Auth,Zend_Acl等),以及在哪里检查用户是否已登录(在每个控制器中还是框架自动为每个请求检查)。
我正在学习Zend框架,但对使用和概念有一些疑问。
我想检查用户是否已登录,以允许访问所有页面。如果是,则显示页面;如果不是,则显示登录页面。
我的主要疑问是我需要使用什么来实现这个功能(Zend_Auth,Zend_Acl等),以及在哪里检查用户是否已登录(在每个控制器中还是框架自动为每个请求检查)。
$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;