如何在CakePHP中对静态页面进行密码保护?
我有一个相当简单的CakePHP应用程序,它使用Auth组件限制对管理函数的访问。这一切都很好,但我使用页面控制器来显示主页和管理主页如何在CakePHP中对静态页面进行密码保护?,php,cakephp,Php,Cakephp,我有一个相当简单的CakePHP应用程序,它使用Auth组件限制对管理函数的访问。这一切都很好,但我使用页面控制器来显示主页和管理主页 如何设置auth以控制对主页“/”和“/admin”等页面的访问?将页面控制器从/cake/libs/controller/目录复制到您的常规/app/controller/目录中,并根据需要对其进行修改。将页面控制器从/cake/libs/controller/目录复制到您的文件夹中常规/app/controller/目录,并根据需要对其进行修改。我不相信您可
如何设置auth以控制对主页“/”和“/admin”等页面的访问?将页面控制器从
/cake/libs/controller/
目录复制到您的常规/app/controller/
目录中,并根据需要对其进行修改。将页面控制器从/cake/libs/controller/
目录复制到您的文件夹中常规/app/controller/
目录,并根据需要对其进行修改。我不相信您可以使用Auth组件来有效地保护静态页面,因为页面控制器使用单个操作display()来呈现所有静态页面。由于通常您会执行诸如Auth->allow('display')之类的操作来允许访问诸如“/”之类的静态页面,因此没有有效的方法来指定单个静态页面的允许/拒绝。我不相信您可以使用Auth组件来有效地保护静态页面,因为页面控制器使用单个操作display(),呈现所有静态页面。由于通常您会执行诸如Auth->allow('display')之类的操作来允许访问诸如“/”之类的静态页面,因此没有有效的方法来指定单个静态页面的允许/拒绝。这对我很有效:
在应用程序控制器中:
function beforeFilter(){
if(@$this->params['pass'][0] == 'profile') //allow \app\views\pages\profile.ctp
$this->Auth->allow('display');
}
您也不必只使用$this->params['pass']
变量。$this
变量中包含大量信息,您可以使用这些信息来定位正确的页面。您也可以使用url,它通常的形式是:/pages/page name这对我来说很有用:
在应用程序控制器中:
function beforeFilter(){
if(@$this->params['pass'][0] == 'profile') //allow \app\views\pages\profile.ctp
$this->Auth->allow('display');
}
您也不必只使用$this->params['pass']
变量。$this
变量中包含大量信息,您可以使用这些信息来定位正确的页面。您还可以使用url,url的格式通常为:/pages/页面名称