【问题标题】:Facebook destroy session on logoutFacebook 在注销时销毁会话
【发布时间】:2017-07-27 21:20:46
【问题描述】:

我正在为客户做一个网站,他们正在使用 facebook 登录。当我登录并注销 facebook 时,它工作正常。但是,当我在注销后不久登录时,它会自动以之前登录的人身份登录。我的问题是如何销毁存储信息的(我假设会话或 cookie),或者我是否需要使访问令牌过期?如果有人最近有适合他们的解决方案,无论哪种方式都在徘徊,因为快速解决方案正因此变成一个长期问题。

session_start();
session_unset();
$_SESSION['FBID'] = NULL;
$_SESSION['FULLNAME'] = NULL;
$_SESSION['EMAIL'] =  NULL;
$_SESSION['valid']  = NULL;
 header("Location: " ."http://www.muchogusto.net"); 

【问题讨论】:

  • 没有代码,你不可能在这里得到答案
  • session_start(); session_unset(); $_SESSION['FBID'] = NULL; $_SESSION['FULLNAME'] = NULL; $_SESSION['EMAIL'] = NULL; $_SESSION['有效'] = NULL; header("位置:" ."my-site.net");
  • 我建议您将其添加到您的问题中,以便格式正确
  • 一开始没注意到编辑按钮
  • 顺便说一句,你为什么使用两个字符串作为 Location 值?

标签: php facebook


【解决方案1】:

来自session_destroy() 手册页

要完全终止会话,还必须取消设置会话 ID。如果使用 cookie 传播会话 ID(默认行为),则必须删除会话 cookie。 setcookie() 可以用于此。


编辑

这是我用的:

session_start();
session_destroy();
setcookie('PHPSESSID','',time()-864000,'/');    // persistent cookie
setcookie('PHPSESSID','',0,'/');    // session cookie

之后添加您的代码:

session_unset();
$_SESSION['FBID'] = NULL;
$_SESSION['FULLNAME'] = NULL;
$_SESSION['EMAIL'] =  NULL;
$_SESSION['valid']  = NULL;
header('Location: http://www.muchogusto.net'); 

【讨论】:

  • “不起作用” - 怎么样?顺便说一句,在将 anything 写入浏览器后,setcookie 将无法使用。
  • 不起作用,因为一旦我在注销后单击登录按钮...它仍会自动重新登录到以前的 facebook 用户登录。
  • 这就是为什么我最初从未使用过原始帖子中的代码,直到有人提到这样做... SESSIONS 的名称可能不正确,这只是我最初被告知可以工作的代码但没有....所以更多的是寻找最近使用 facebook 登录创建注销页面的人
  • 您的setcookie 参数使用了什么?您是否按照我的说明销毁了永久 cookie 和会话 cookie? (你应该逐字使用这两行。)
  • 另外,如果打开另一个浏览器窗口/选项卡且 Facebook 登录处于活动状态,您实际上可能无法在不重新启动浏览器的情况下退出。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-21
  • 2014-01-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多