6

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

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

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

4

2 回答 2

5

您要使用的工具是Zend_Auth,当您掌握它的窍门时,它非常容易使用。

检查用户是否登录可以很简单:-

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

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

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

$this->user->checkSomething();

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

于 2012-05-09T15:07:27.680 回答
2

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

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

if (Zend_Auth::getInstance()->hasIdentity()) echo "oh yeah I'm logged in lol"; die;
于 2016-09-26T21:52:53.880 回答