gpt4 book ai didi

php - Facebook API - 用户注销后 session 仍然存在

转载 作者:可可西里 更新时间:2023-11-01 12:50:14 25 4
gpt4 key购买 nike

我在我的 iframe facebook 应用程序中使用 Facebook php-sdk 来获取用户登录状态。在我使用 facebook Account > Log out 链接注销后, session 尚未被破坏。我必须在旧 session 过期之前等待几分钟,然后我的应用程序将再次获得正确的登录状态。

我希望 facebook 在用户注销时自行终止 session 。如何手动终止 session ?

这是我的代码:

$initParams = array(
'appId' => $conf['app_id'],
'secret' => $conf['secret_api_key'],
'cookie' => TRUE,
);

$fb = new Facebook($initParams);
$fb->getSession(); // will return a session object eventhough user signed out!

已解决:

调用 $fb->api('/me') 将在用户之前注销时销毁 session 。我更改了我的代码如下:

if ($session)
{
try
{
$fbuid = $fb->getUser();
$me = $fb->api('/me');
}
catch(FacebookApiException $e){}
}

如果 API 调用不成功,$session 将被设置为 NULL。非常奇怪的行为,我没有解释这里发生的一切,但它解决了我的问题,即没有通过 getSession() 方法更新残留 session 对象。

最佳答案

我正在使用 $fb->getUser() 并且我所做的与您的几乎相同。

if ($fb->getUser())
{
try
{
$me = $fb->api('/me');
}
catch(FacebookApiException $e){
**$fb->destroySession();**
}
}

我发现只用API检查FB是否登出有时不一致,但是用destroySession()肯定会销毁session。

关于php - Facebook API - 用户注销后 session 仍然存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4511570/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com