如何检查用户是否使用Zend Framework登录?

Ren*_*ani 6 php acl zend-framework login

我正在学习Zend Framework,但我对使用和概念有些怀疑.

我想检查用户是否已登录以允许访问所有页面.如果是,则显示页面,如果没有,则显示登录页面.

我的主要疑问是我需要用来做这件事(Zend_Auth,Zend_Acl等)以及在哪里检查用户是否被记录(在每个控制器或框架中自动检查每个请购单).

vas*_*ite 5

你想要使用的工具是Zend_Auth,当你掌握它时它非常容易使用.

检查用户是否已登录可以如下所示: -

$auth = Zend_Auth::getInstance();
if($auth->hasIdentity()) $loggedIn = true;
Run Code Online (Sandbox Code Playgroud)

请参阅Rob Allen关于Zend Auth入门的优秀教程.

我使用的方法是设置一个用户类,该用户类负责查看授权和访问控制,并将其作为Action Helper注入我的应用程序,这样在我的任何控制器中我都可以这样做: -

$this->user->checkSomething();
Run Code Online (Sandbox Code Playgroud)

授权部分需要影响您不希望公开的站点的所有部分,并且每个受影响的控制器都需要检查用户是否已登录.对于访问控制,这是基于每个角色/每个资源完成的,具体取决于你需要多细粒度.参见手册中的ACLAUTH.