首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >facebook注销后,应用程序会话仍存在

facebook注销后,应用程序会话仍存在
EN

Stack Overflow用户
提问于 2011-01-24 15:58:57
回答 2查看 3.8K关注 0票数 1

我是Facebook API的新手,我已经搜索了很多次来解决这个问题,但我没有成功地找到一个。即使在用户从facebook注销之后,浏览器仍然可以获取上一次会话的cookie。

它是这样做的: 1.用户登录到facebook。2.打开应用程序。3.退出facebook。3.打开应用程序(未登录),应用程序将加载并显示错误

消息: file_get_contents(https://graph.facebook.com/me/friends?access_token=157847364248123|2.pqWqIaCD8BKobvG_kJy9sA__.3600.1295859600-100001714363073|QfoJpTH-slOry2K1FepeyW8z5f8)函数.file-get-contents:无法打开流: HTTP请求失败!HTTP/1.0 400错误请求

我认为当用户在facebook中勾选注销时,我需要清除cookie,但我不知道如何在PHP SDK中做到这一点。请帮帮忙。谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-01-24 16:00:49

票数 0
EN

Stack Overflow用户

发布于 2011-01-27 09:08:04

我尝试通过Javascript从facebook上捕获用户注销,然后JS将重定向到清除cookie的控制器函数,但这对我不起作用。我的应用程序仍然使用旧会话,这会导致即使用户注销,我的应用程序也会加载错误。

但我只需在会话检查中添加以下两行代码即可解决问题:

代码语言:javascript
复制
$uid = $facebook->getUser();
$me = $facebook->api('/me');

当此检查失败时,页面将重定向到facebook登录页面。我的代码是这样的:

代码语言:javascript
复制
$facebook = new Facebook(array(
'appId'  => 'XXXXXXXXXX',
'secret' => 'XXXXXXXXXXXXXXXXXXX',
'cookie' => true,
));

$session = $facebook->getSession();
$me = NULL;

if ($session)
{
    try
    {
        $uid = $facebook->getUser();
        $me = $facebook->api('/me');

         /// OTHER PROCESS

        $this->load->view('app_page', $data);
    }
    catch (FacebookApiException $e)
    {
        error_log($e);
        $this->output->set_header("Location: http://www.facebook.com, TRUE, 302");
    }
}
else
{
    /// GO TO PERMISSION REQUEST
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4779784

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档