通过Facebook连接成功验证后,如何从URL隐藏会话信息?

时间:2011-03-24 10:42:00

标签: php facebook facebook-php-sdk

我在我的一个网站上使用facebook connect。为此,我使用了php sdk库。

我正在使用以下代码:

<?php
  require APP_PHYSICAL_PATH.'includefiles.php';
  $loginUrl = $facebook->getLoginUrl(
        array(
        'req_perms' => 'email,user_location',
        'next'=>APP_URL.'views/search.php?validate=true'

        )
);
?>  
   <a href="<?php echo $loginUrl; ?>">
    <img src="http://static.ak.fbcdn.net/rsrc.php/zB6N8/hash/4li2k73z.gif">
  </a>

问题是成功验证后会进入搜索页面,但会在网址中显示会话信息。对于例如

http://mydomain/views/search.php?validate=true&session={"session_key"%1A"4.7REQluh3EVBGKiA5m8cNlg__.6600.1700968000-900001178893860"%  

我希望此会话信息不可见。有没有办法实现这个目标?

请帮我解决这个问题

由于

的Pankaj

1 个答案:

答案 0 :(得分:2)

我对此问题的解决方案如下:

  • 当用户点击Facebook登录按钮时,会出现一个弹出窗口(最好没有URL输入栏)。此外,您可以传递'display'=&gt; getLoginUrl方法的'popup'参数,因为这将使用另一个更适合弹出窗口的Facebook连接页面布局。
  • 当Facebook登录和权限授予成功时,Facebook会将您重定向到您不想显示的网址。
  • 在您重定向到的页面上,您应该回显关闭窗口的javascript。

另一种解决方案是在iframe中完成整个连接内容(虽然我没有测试过这种方法)。