我开始使用CakePHP,并且在设置验证组件时遇到问题。 每次用户注销时,cake都会重定向到登录。 您将看到我正在尝试在注销()期间删除/取消设置一些cookie。这是因为我正在使用Wordpress网站设置单一登录,所以我希望用户能够从两个站点注销。CakePHP验证组件重定向登录后登录
我的AppController:
class AppController extends Controller {
public $components = array(
'Session',
'Cookie',
'Auth' => array(
'loginRedirect' => array('controller' => 'questions', 'action' => 'index'),
'logoutRedirect' => array('controller' => 'pages', 'action' => 'display', 'home')
)
);
public function beforeFilter() {
$this->Auth->allow('index', 'view', 'login', 'logout', 'display');
}
}
UsersController:
class UsersController extends AppController {
public function beforeFilter() {
parent::beforeFilter();
$this->Auth->allow('add', 'logout', 'login');
}
...
public function login() {
//who cares
}
public function logout() {
$wp_cookie = grab_wp_cookie(); //this grabs a specific cookie
$cookie_name = (isset($wp_cookie['name'])) ? $wp_cookie['name'] : NULL;
//NONE OF THESE WORK...
$this->Cookie->write($cookie_name, '', false, time()-3600);
$this->Cookie->delete($cookie_name);
$this->Cookie->destroy();
$this->redirect($this->Auth->logout());
}
是否您希望重定向到注销时的其他页面? – summea 2013-04-03 22:07:06
理想情况下,我会在注销后重定向,但我并不在乎。现在,它会触发我的登录操作,导致用户在重定向后仍保持登录状态。这完全令我困惑,为什么登录操作应该在注销过程中有任何参与(example.com/users/logout/) – emersonthis 2013-04-03 22:08:23
您是否尝试过在'logout()'函数中使用以下行?上次我正在开发一个测试项目......我只使用这一行:'$ this-> redirect($ this-> Auth-> logout());'除非你特别需要上面那些与cookie相关的行.. – summea 2013-04-03 22:17:06