我有一個相當簡單的CakePHP應用程序,它使用Auth組件限制對管理功能的訪問。這一切都工作正常,但我使用頁面控制器顯示主頁和管理主頁。如何在CakePHP中密碼保護靜態頁面?
我該如何設置auth來控制對'/'等頁面訪問家庭和'/ admin'的訪問?
我有一個相當簡單的CakePHP應用程序,它使用Auth組件限制對管理功能的訪問。這一切都工作正常,但我使用頁面控制器顯示主頁和管理主頁。如何在CakePHP中密碼保護靜態頁面?
我該如何設置auth來控制對'/'等頁面訪問家庭和'/ admin'的訪問?
將目錄中的PagesController複製到您的常規/app/controller/
目錄中,並根據需要對其進行修改。
我不相信你可以使用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
變量內有很多信息可用於定位正確的頁面。您也可以使用網址,網址通常採用以下格式:/ pages/page-name