所以,我已经有一段时间了,经历了一堆不同的问题,但仍然没有解决方案。
如果我定期登录,一切都很好,我可以按预期注销。但是,如果我使用 facebook 登录(授权应用程序),那么除非我从浏览器菜单中手动删除 cookie,否则无法注销。
按照该逻辑,我想使用此代码在注销操作中销毁 cookie(在我修改会话设置以跨子域工作之后,对于我的特殊情况):
function logout() {
if ($this->Cookie->read('Auth.User')) {
$this->Cookie->delete('Auth.User');
}
$this->Auth->logout();
unset($_SESSION['fb_MYAPP_ID_user_id']);
unset($_COOKIE['fbm_MYAPP_ID']);
unset($_COOKIE['fbsr_MYAPP_ID']);
unset($_COOKIE['CAKEPHP']);
//pr($_SESSION);pr($_COOKIE);exit(); //here I see that the cookies are in fact deleted
$this->redirect($this->Auth->logout());
$this->redirect('/login');
}
但每次注销重定向后,它都会让用户返回、登录并重新创建会话/cookie。
我经历了很多这样的问题和答案,但没有一个对我有用。有任何想法吗?