【发布时间】:2012-08-05 15:34:05
【问题描述】:
所以,我已经有一段时间了,经历了一堆不同的问题,但仍然没有解决方案。
如果我定期登录,一切都很好,我可以按预期注销。但是,如果我使用 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。
我经历了很多 SO 问题和答案,但没有一个对我有用。有什么想法吗?
【问题讨论】:
标签: facebook cakephp authentication cakephp-1.3