应用服务器上的Facebook用户身份验证

应用服务器上的Facebook用户身份验证,facebook,facebook-graph-api,Facebook,Facebook Graph Api,我只想为这件简单的事情找到至少一个可行的解决方案。 我想确定facebook用户向我的FB canvas应用程序发出的请求。我还希望该机制考虑用户注销或重新登录的情况。 在那件事上我真的伤了头:( 我已经尝试过的方法: 1) 在用户向应用程序发出初始请求时获取并解析签名的_请求参数。缺点:画布主页是获取它的唯一地方。我永远不知道用户下一步要做什么。 2) 使用fbsr cookie。缺点:有时我在尝试将cookie代码交换到用户的访问令牌时出错。我仍然无法复制它,它只是发生了。顺便说一句,它在你

我只想为这件简单的事情找到至少一个可行的解决方案。
我想确定facebook用户向我的FB canvas应用程序发出的请求。我还希望该机制考虑用户注销或重新登录的情况。
在那件事上我真的伤了头:(

我已经尝试过的方法:
1) 在用户向应用程序发出初始请求时获取并解析签名的_请求参数。缺点:画布主页是获取它的唯一地方。我永远不知道用户下一步要做什么。
2) 使用fbsr cookie。缺点:有时我在尝试将cookie代码交换到用户的访问令牌时出错。我仍然无法复制它,它只是发生了。顺便说一句,它在你的电脑上工作吗?
3) 在客户端处理每个get/post请求,并将JSSDK检索到的用户访问令牌添加到请求中。这似乎不是个好办法

好了,就这样。我做错了什么?对于任何可行的解决方案,我都会非常感激

1) 在用户向应用程序发出初始请求时获取并解析签名的_请求参数。缺点:画布主页是获取它的唯一地方。我永远不知道用户下一步要做什么

那么就把解析后的签名请求放到会话中


这是我通常做的事情–每次
Facebook::getSignedRequest
产生了非
null
的结果时,我都会将其写入会话(因此,如果它被更新,例如被喜欢该页面的用户所更新,我不会错过)。

您将其放入会话,然后其他用户登录到facebook,但仍然是您应用程序的旧用户。当其他用户登录时,facebook会在iframe中再次调用该应用程序,因此还会有一个新的签名请求。如果我的朋友在其他窗口登录到fb,则会在原始选项卡上显示错误弹出消息。我关闭它并继续在我的帐户下工作。那么,是谁做的呢?在同一台机器上的同一浏览器的另一个窗口中登录到一个网站…?我想说这是一个非常特殊的用例,而不是普通的用例。如果我的网站对金钱敏感怎么办?我希望应该有一种方法来检测用户目前正在做什么操作,但我可以看到一种方法。而且,我不明白为什么cookie代码有时是错误的。。。