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