我不想讓我的用戶控制的login()
,logout()
和add()
行動Auth
授予訪問權限,但如果我用$this->Auth->allow('logout');
與否我得到的消息也沒關係:You are not authorized to access that location.
login()
和add()
做工精細,雖然。爲什麼註銷操作無法訪問?
這是我AppContoller.php:
class AppController extends Controller {
public $components = array(
'Auth' => array(
'authenticate' => array(
'Form' => array(
'userModel' => 'User',
'fields' => array(
'username' => 'email', 'password' => 'password')
)
),
'loginRedirect' => array('controller' => 'users', 'action' => 'index'),
'logoutRedirect' => array('controller' => 'pages', 'action' => 'display', 'landing')
), 'Session'
);
public function beforeFilter() {
$this->Auth->allow('add', 'login');
}
}
這是我UsersController.php的相關部分:
public $helpers = array('Html', 'Form', 'Session');
public $components = array('Session');
public function beforeFilter() {
parent::beforeFilter();
$this->Auth->allow('logout');
}
public function logout() {
$this->set('title_for_layout', 'Logout');
$this->redirect($this->Auth->logout());
}
有誰看到這裏的問題?我感謝您的幫助。
快速瀏覽一下,我可以看到一個小問題,在重定向之前沒有必要設置標題,儘管它不應該成爲問題的一個因素。您要重定向到的頁面是Auth->允許? – Daniel
@Daniel,是的,你可以在UserController.php的beforeFilter函數中看到它是auth允許的。 – Loolooii
對不起,我的意思是logoutRedirect操作 -/pages/display/landing。 – Daniel