2013-04-30 36 views
0

我正在开发一个使用PHP(Laravel框架)的REST api。当我在玩facebook's GRAPH API EXPLORER时,我注意到它使用会话机制。如果REST应用程序应该是无状态的,Facebook如何管理其API的会话?

Logged in Image

当我退出,并通过提供我的访问令牌,我得到以下错误尝试的探险家。

Logged out Image

什么现在我的观点是,Facebook正在这里使用会话旁边刚刚访问令牌。我的问题是,如何能够使用REST Api中的会话,因为当我使用CURL请求我的api时,服务器会为每个请求生成新会话。

如果是的话是否有任何破解,那么它是如何完成的?

回答

0
现在

我的观点是什么,Facebook正在这里使用会话旁边刚刚访问令牌

实际上,图形API Explorer将自动追加的access_token = blah_blah如果你忽略它,所以它的会议实际上是只基于access_token。您的access_token必须已过期。在这里调试它:https://developers.facebook.com/tools/debug

+0

这就是我正在问的是如何知道与访问令牌关联的用户登出?在上面的例子中,我发布了我手动注销。可以说,如果我只关闭浏览器,Facebook会如何知道我已注销?请帮忙。 – 2013-04-30 05:34:27

+0

我不知道我明白。当您手动注销时,客户端Facebook代码将重置您的会话并*不发送access_token。如果您只是关闭浏览器,您没有注销,您的会话仍然存储在fb cookies中,并且会在下次恢复。 – 2013-04-30 05:38:36

+0

好 - 知道了。您在登录时使用了access_token,并且它不再工作。这是因为当你注销时,Facebook会使该令牌无效。为了防止在你的应用程序中发生这种情况,你必须交换给定的短命令访问令牌和一个长期的访问令牌。 https://developers.facebook.com/docs/howtos/login/extending-tokens/ – 2013-04-30 05:40:29

相关问题