我在cakephp 2.x中有一个网站,我希望访客用户(未登录)可以看到相同的页面:
用户/登录
用户/ forgot_password
用户/ reset_password
我的AuthComponent无法访问我的页面。我可以访问用户/登录但不能访问forgot_password和reset_password,如果我尝试继续重定向到登录页面。
这是我的AppController与AuthComponent:
public $components = array(
'Session',
'Auth' => array(
'loginAction' => array('controller'=>'users','action'=>'login', 'admin'=>false),
'logoutRedirect' => array('controller'=>'users','action'=>'login'),
'loginRedirect' => array('controller'=>'projects', 'action'=>'index'),
'authError' => 'Questa risorsa non sembra appartenere al tuo account, oppure non hai eseguito l\'accesso',
'autoRedirect' => false,
'authorize' => array(
'Controller',
'Actions' => array(
'actionPath' => 'controllers'
)
),
'authenticate' => array(
'Form' => array(
'fields' => array('username' => 'email')
)
)
)
);
在这种情况下,我无法访问forgot_password和reset_password。
但如果我改成它:
public $components = array(
'Session',
'Auth' => array(
'loginAction' => null,
'logoutRedirect' => array('controller'=>'users','action'=>'login'),
'loginRedirect' => array('controller'=>'projects', 'action'=>'index'),
'authError' => 'Questa risorsa non sembra appartenere al tuo account, oppure non hai eseguito l\'accesso',
'autoRedirect' => false,
'authorize' => array(
'Controller',
'Actions' => array(
'actionPath' => 'controllers'
)
),
'authenticate' => array(
'Form' => array(
'fields' => array('username' => 'email')
)
)
)
);
我已将null
设置为loginAction
,在这种情况下我可以访问forgot_password和reset_password但页面为空且没有错误,正文为空。这些页面只是html,没有这样的查询:
控制器动作
public function forgot_password(){
}
查看
<div>
<p>RESTORE PASSWORD</p>
</div>
有人可以帮帮我吗?感谢
答案 0 :(得分:3)
在beforeFilter()
回调中,添加$this->Auth->allow('forgot_password');