1


在 Zend 框架中,如果用户未登录,有什么更好的方法来限制用户访问登录后页面。没有 Zend,我将编写一个代码来检查
用户 ID 是否在会话中设置,并将该代码放在公共文件中(在所有
登录后页面上使用)。

在 Zend Framework 中,我可以使用 zend_auth 的 hasIdentity 方法进行检查,但我
不想在所有操作中进行检查。我正在考虑的另一种方法是创建一个
插件并将其挂钩到 routeshutdown 事件,然后在获取控制器和操作
名称之后从请求对象我可以决定是否重定向用户。

请提出一些在zend框架中实现它的好方法

4

1 回答 1

2

您通常会编写一个控制器插件并将其添加到前端控制器。通过这种方式,您可以拦截所需的调度和路由过程,并发出重定向到适当的页面。

class Your_Controller_Plugin_Authcheck extends Zend_Controller_Plugin_Abstract
{
}

在引导类中:

protected function _initFrontControllerPlugins()
{
    $this->bootstrap(array('AuthcheckPlugin', 'FrontController'));

    $front = $this->getResource('FrontController');
    $front->registerPlugin($this->getResource('AuthcheckPlugin'));
}

protected function _initAuthcheckPlugin()
{
    $plugin = new Your_Controller_Plugin_Authcheck();

    return $plugin;
}

顺便说一句:这是 Zend Framework 1 - 可能在 2 中工作相同,但我相信如果你已经使用它,你可能会在那里改变一些东西。

于 2012-10-03T12:01:51.650 回答