我想让Auth
授予用户控制器的login()
,logout()
和add()
操作权限,但如果我使用{{}},则无关紧要{1}}我是否收到了消息:$this->Auth->allow('logout');
You are not authorized to access that location.
和login()
工作正常。
这是我的AppContoller.php:
add()
这是我的UsersController.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');
}
}
有人在这看到问题吗?感谢您的帮助。
答案 0 :(得分:0)
您似乎正在访问注销操作而没有任何问题,但注销重定向会破坏您的会话并将您重定向到page
视图。
您似乎没有登录就无法访问该页面。 (您可以尝试访问URL而不进行记录)
在beforeFilter
:
PagesController
功能
public function beforeFilter(){
parent::beforeFilter();
$this->Auth->allow();
}
PagesController默认使用CakePHP 2.2,如果你没有它,只需复制并粘贴任何其他控制器并添加此功能删除所有其余部分。
EDITED: 如果PagesController已经存在,只需添加beforeFilter函数即可。