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


How to check if user is logged with Zend Framework?

我正在学习Zend Framework,但我对它的用法和概念有一些疑问。

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

我的主要疑问是我需要使用什么来执行此操作(Zend_Auth、Zend_Acl等)以及在哪里检查用户是否已记录(在每个控制器或框架中为每个申请自动检查这一点)。

您要使用的工具Zend_Auth当您掌握窍门时

,它非常易于使用。

检查用户是否已登录可以像以下一样简单:-

$auth = Zend_Auth::getInstance();
if($auth->hasIdentity()) $loggedIn = true;

请参阅 Rob Allen 关于开始使用 Zend Auth 的优秀教程。

使用的方法是设置一个负责授权和访问控制的用户类,并将其作为操作帮助程序注入我的应用程序中,以便在我的任何控制器中我都可以执行以下操作:

$this->user->checkSomething();

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

想要检查用户是否登录了 ZendFramework?试试这个:

将其放在控制器的任何位置进行"调试",并将其放在代码的顶部或开头:

if (Zend_Auth::getInstance()->hasIdentity()) echo "oh yeah I'm logged in lol"; die;