应用程序传递一个参数到url中删除facebook $session


Application Passing a parameter into the url delet the facebook $session?

我的问题在这里

index.php文件代码:

    <?php
    require_once ('../src/facebook.php');
    $facebook = new Facebook(array(
    'appId' => 'xxxxxxxx',
    'secret' => 'xxxxxxxxxxxxxxxxxxx',
    'cookie' => true,
      ));
      $session = $facebook->getSession();
      print_r($session);
       ?>

它工作得很好,我有所有的$session信息

但是一旦我调用index.php?参数=x,我不再有我的会话信息

如何来吗?

我看了里面的facebook.php,当你使用OAuth 2.0使用signed_request,它是第一个来源,它得到会话。

signed_request通过POST传递给canvas,如果它在高级设置中启用。

当您使用GET方法导航到其他页面时,如index.php?param=x,您丢失了signed_request。

我们以前遇到过这个问题,并选择在iframe中使用AJAX来保留index.php中的signed_request, AJAX加载的页面将生成基于cookie的会话,因为它们没有signed_request。

你也可以在高级设置中禁用OAuth 2.0