2013-10-02 123 views
0

我想使用CakePHP的isAuthorized功能,但是隻要訪問應該被拒絕,用戶就會返回到他來自的頁面。CakePHP isAuthorized false返回到同一頁面,而不是重定向到一個URL

目前爲止我能找到的最好的方法是使用authError-> 'You are denied',它甚至不會閃現。

手動設置return false;isAuthorized函數之前需要手動設置閃爍和重定向嗎?

有沒有辦法檢查它是否被拒絕,然後自動執行404?

+1

請隨時提您確切的CakePHP版本。 – ndm

回答

0

聽起來像你需要配置Auth->loginRedirect,以便當用戶被拒絕時,他們被推送到登錄頁面。 Auth組件會記住用戶試圖訪問的頁面,如果他們登錄,它會將它們重定向回該頁面。

作爲參考,本書詳細介紹了Auth組件的配置。 http://book.cakephp.org/2.0/en/core-libraries/components/authentication.html

我傾向於使用配置驗證的老方法在AppController::beforeFilter()

public function beforeFilter() { 
    $this->Auth->loginRedirect = array('controller' => 'users', 'action' => 'login', 'admin' => false); 
} 
+0

還可以查看[例外](http://book.cakephp.org/2.0/en/development/exceptions.html)(即如果您需要404,則爲'NotFoundException')和['AuthComponent :: $ authorizedRedirect'] (http://book.cakephp.org/2.0/en/core-libraries/components/authentication.html#AuthComponent::$unauthorizedRedirect)在CakePHP> = 2.3 – ndm

相關問題