Facebook在登出时仍然获得访问令牌(JS和PHP)

时间:2015-01-23 15:27:24

标签: javascript php wordpress facebook facebook-graph-api

我目前正在建立一个网站,我的Wordpress主题已经支持通过JS SDK登录Facebook。以下是我的FB.init

window.fbAsyncInit = function(){
                FB.init({
                    appId       : 'xxxxxxxx'
                    , status    : true
                    , cookie    : true
                    , xfbml     : true
                    , oauth     : true
                    , version    : 'v2.2'
                });
            };

由于我想在HTML上输出内容之前做一些背景调查,我也使用PHP SDK。 (我没有使用PHP进行登录,因为有更多的重定向,而JS是直接的(弹出,你已经完成)。

要发出请求,我使用FacebookJavascriptLoginHelper和以下代码来获取请求所需的会话。

$helper = new FacebookJavaScriptLoginHelper();
    try {
        $session = $helper->getSession();
    } catch(FacebookRequestException $ex) {
        // When Facebook returns an error
    } catch(\Exception $ex) {
        // When validation fails or other local issues
    }

到目前为止一切顺利。每次刷新页面时,我都会从JS SDK中获取一个新的access token,并在我需要提出请求的情况下使用它。 问题在于注销部分。

如果我使用FB.logout用户登出Facebook,即使在他的浏览器中也必须再次登录,这是绝对不可接受的。 我可以通过简单地检查是否有登录用户,然后开始要求新的Facebook会话来传递这个“问题”,但这是我应该去的方式吗?

当我登出wordpress时,我仍然可以接收访问令牌并向服务器发出一段时间的请求。我认为接近10-15分钟。之后我没有收到任何东西,必须再次登录。

编辑:我也注意到即使我没有退出,如果我不刷新很短的时间,我也不会session (access token)。如果我刷新一次然后第二次我得到一个

0 个答案:

没有答案