为什么不是';FacebookJavaScriptSDK设置cookie吗?

为什么不是';FacebookJavaScriptSDK设置cookie吗?,javascript,facebook,cookies,Javascript,Facebook,Cookies,我遇到了一个问题,Facebook JavaScript SDK没有在某些机器上设置cookie,因此在尝试使用我的应用程序的秘密值验证cookie时,我的后端验证失败 我有一本书;重要文件包括: 客户端使用Facebook JavaScript API登录用户并获取其详细信息,然后将这些信息发布到我的服务器。服务器发回fbs\u APPID,然后客户端显示该文件。在某些Windows计算机(在所有浏览器中)上,服务器无法获得预期的cookie。是什么阻止Facebook设置cookie

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

我有一本书;重要文件包括:

客户端使用Facebook JavaScript API登录用户并获取其详细信息,然后将这些信息发布到我的服务器。服务器发回
fbs\u APPID
,然后客户端显示该文件。在某些Windows计算机(在所有浏览器中)上,服务器无法获得预期的cookie。是什么阻止Facebook设置cookie,我该如何着手修复它


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

看看JS的初始化代码:

<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>

FB.init({
appId:'您的应用程序ID',
状态:true,//检查登录状态
cookie:true,//启用cookie以允许服务器访问会话
xfbml:true//解析xfbml
});

您是否启用cookie one以获得cookie支持?还要确保浏览器中没有禁用cookies。

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


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

可悲的是,cookie选项没有那么可靠。。。就我个人而言,我更喜欢获取javascript sdk的签名请求,将其作为post var发送到后端,然后在那里解码该签名请求以验证调用

这样,它也可以在safari中工作:)

干杯