为什么Facebook JavaScript SDK没有设置cookie?

时间:2010-07-16 13:45:53

标签: javascript facebook cookies

我遇到一个问题,即Facebook JavaScript SDK没有在某些机器上设置cookie,因此在尝试使用我的应用程序的秘密值验证cookie时,我的后端验证失败。

我有demo app;重要的文件是:

客户端使用Facebook JavaScript API记录用户并获取他们的详细信息,然后将这些发布到我的服务器。服务器发回客户端随后显示的fbs_APPID。在某些Windows机器上(在所有浏览器中),服务器无法获得预期的cookie。什么阻止Facebook设置cookie,我该如何解决它?

演示应用程序在Sinatra中,但我们发现错误的生产应用程序是Rails,如果这有所不同。

3 个答案:

答案 0 :(得分:1)

看一下S:

的初始化代码
<script>
  FB.init({
    appId  : 'YOUR APP ID',
    status : true, // check login status
    cookie : true, // enable cookies to allow the server to access the session
    xfbml  : true  // parse XFBML
  });
</script>

您是否启用了Cookie以获得Cookie支持?确保您的浏览器中没有禁用cookie。

答案 1 :(得分:1)

cookie选项遗憾地不那么可靠......我个人更喜欢获得javascript sdk的签名请求,将其作为post var发送到后端,然后解码此签名请求以验证调用..

这样它也适用于safari:)

喝彩!

答案 2 :(得分:0)

我不确切知道发生了什么,但我认为这是一个Facebook问题,而不是你的应用程序的问题。同样的事情发生在我身上,然后它“神奇地”开始工作。

请参阅Why wouldn't the Facebook JavaScript authentication work on a specific computer?

我猜它与CDN上的Facebook缓存有关。