如何使用php从facebook注销或销毁活动会话?

如何使用php从facebook注销或销毁活动会话?,facebook,session,logout,Facebook,Session,Logout,我有一个请求通过facebook注册的应用程序,但在用户可以继续注册之前,系统应该首先确定是否存在活动会话。如果用户登录到facebook,则应自动注销以重新开始 但这就是我被困的地方。只有当用户连接到你的应用时,SDK才允许用户从facebook注销。它使用应用程序的访问令牌。但如果他还没有注册到你的应用程序呢?他们的注销意味着从你的应用程序中注销,而不是从facebook 我的要求: 1.如何从facebook注销 2.如何清除浏览器cookie 不是在特定的应用程序上,而是在整个faceb

我有一个请求通过facebook注册的应用程序,但在用户可以继续注册之前,系统应该首先确定是否存在活动会话。如果用户登录到facebook,则应自动注销以重新开始

但这就是我被困的地方。只有当用户连接到你的应用时,SDK才允许用户从facebook注销。它使用应用程序的访问令牌。但如果他还没有注册到你的应用程序呢?他们的注销意味着从你的应用程序中注销,而不是从facebook

我的要求:

1.如何从facebook注销

2.如何清除浏览器cookie


不是在特定的应用程序上,而是在整个facebook会话上。使用logout.php url

基本上

 http://facebook.com/logout.php?next=YOUR_NEXT_URL_FOR_LOGOUT&access_token=USER_TOKEN
[来自评论]但要使用getLogoutUrl()函数,用户必须连接到您的应用程序。我需要的是从整个facebook注销,而不仅仅是从应用程序注销

如果用户已连接到您的应用程序,则由
getLogoutUrl
方法提供的URL将执行此操作–将用户注销您的应用程序(web应用程序)和facebook.com

但是,如果用户未连接到您的应用程序,则您没有活动的用户访问令牌,因此无法注销Facebook。显而易见的原因是,如果是这样的话,我访问的每个网站都可以以“免下车”的方式将我从Facebook注销,而我却不想这样做,因此人们会很快感到恼火

如果用户登录到facebook,则应自动注销以重新开始

如果这是出于安全考虑,那么实际上您正在寻找,可以使用
auth_type
参数从文档中引用:

在安全性非常重要的应用程序中,您可能需要再次检查某人的身份-可能是在他们在应用程序中进行购买之前,或者使用它访问一些敏感的个人数据

为了防止用户可能离开已登录的设备或中途劫持用户会话,重新身份验证会强制用户在继续使用您的应用程序之前重新输入其Facebook密码

请注意使用服务器端身份验证流–因为在使用JS SDK的客户端流中,存在一个漏洞,允许用户通过关闭仍然打开的弹出窗口绕过重新输入密码:(已分配优先级:高,但仍然只收到“we will follow”响应。)1)使用从facebook注销

facebook=>getLogoutUrl();
2) 使用以下命令清除会话:

$facebook->destroySession();
例如:

<a href="logout.php">Log Out</a>

logout.php页面代码如下:

<?php
require 'facebook.php';
$facebook->destroySession();
header( "location:index.php" );
?>


你好,谢谢!但是要使用getLogoutUrl()函数,用户必须连接到您的应用程序。我需要的是从整个facebook上注销,而不仅仅是从应用程序上注销(@sarenagay then我不太确定,`系统应该首先确定是否存在活动会话。如果用户登录到facebook,它应该自动注销以重新开始。`这也没有意义,如果会话处于活动状态,你为什么要注销?除非多个用户从同一点进行交互……这是错误的为了安全起见。我想我会选择重新认证而不是注销。非常感谢。顺便说一句:)你好,非常感谢你的回答,并告诉我关于重新认证的想法。这也是我的想法,但我只是有点希望我的问题会得到解决。至少我非常确信这是不可能的,因为正如你所说,它会要求一个访问令牌,我无法完全控制用户从fb注销。