阻止访问页面Zend Framework

时间:2015-01-11 08:12:40

标签: php zend-framework user-permissions

我已经使用Zend Framework为我的网站创建了登录页面,它有效 在页面A (www.example.com/a)中,用户必须登录系统,如果用户名和密码匹配,则用户转到Page B,C,.. (www。 example.com/b)
但如果有人直接插入链接(www.example.com/b),它可以在没有任何许可的情况下看到B页,如何修复它?

2 个答案:

答案 0 :(得分:1)

您可以使用插件。

例如,您可以尝试这样的事情:

在你的引导程序中,添加此函数(以声明插件)

public function _initPlugins(){
    $front = Zend_Controller_Front::getInstance();
    $front->registerPlugin(new Application_Plugin_PRoutage());
}

使用此示例,在application/plugins文件夹中,创建PRoutage.php插件,如下所示:

class Application_Plugin_PRoutage extends Zend_Controller_Plugin_Abstract
{
    public function dispatchLoopStartup(Zend_Controller_Request_Abstract $request)
    {  
        if ( FALSE === Zend_Auth::getInstance()->hasIdentity()) 
        {  
            // Redirection to login page
            $request->setControllerName('login')
                     ->setActionName('login')
                     ->setDispatched(true) ;
        }
    }
}

答案 1 :(得分:0)

我没有使用Zend,但可以在Laravel中使用过滤器'之前完成:auth'在途中。

Route::get('b', ['before'=>'auth', function() {
    //return your View here
}]);

这种方式在访问页面之前' b'直接通过URL,系统将检查用户是否经过身份验证,如果没有,则会显示错误页面。

您可以在Zend中引用Zend_Auth API获取实现细节,它将类似:

http://framework.zend.com/manual/1.12/en/zend.auth.introduction.html http://framework.zend.com/manual/current/en/user-guide/routing-and-controllers.html

相关问题