我无法注册用户和"您无权访问该位置"消息显示。
在我的AppController.php中:
public function initialize()
{
parent::initialize();
$this->loadComponent('RequestHandler');
$this->loadComponent('Flash');
$this->loadComponent('Auth', [
'authorize' => ['Controller'],
'loginRedirect' => [
'controller' => 'Users',
'action' => 'index'
],
'logoutRedirect' => [
'controller' => 'Users',
'action' => 'login',
'home'
],
]);
}
public function isAuthorized($user)
{
return true;
}
public function beforFilter(Event $event) {
parent::beforeFilter($event);
$this->Auth->allow(['register', 'confirm', 'login']);
}
在我的UsersController.php中,我有一个函数寄存器(),我想调用它来执行用户注册。
答案 0 :(得分:0)
您的功能名称错误。
function beforFilter(Event $event) {
parent::beforeFilter($event);
$this->Auth->allow(['register','confirm','login']);
}
应该是:
function beforeFilter(Event $event) {
parent::beforeFilter($event);
$this->Auth->allow(['register','confirm','login']);
}
答案 1 :(得分:0)
以上错误可能是由CSRF组件引起的。
如果您使用的是CSRF组件,则需要授予以下权限:
echo "Sync'ing acos"
bin/cake acl_extras aco_sync
echo "Granting permission"
bin/cake acl grant Role controllers/ControllerName
例如。
bin/cake acl grant Manager controllers/Users
然后不要忘记重新启动服务器。
答案 2 :(得分:-1)
如果你在AppController中使用beforeFilter(),那么尝试使用控制器名称和方法,
public function beforFilter(Event $event) {
$this->Auth->allow(['Users.register', 'Users.confirm', 'Users.login']);
}
不要忘记使用课程"使用Cake \ Event \ EventManager"