Facebook单点登录 - 处理无效的fbs_token cookie

时间:2010-10-18 00:22:44

标签: facebook

我有一个应用程序成功使用Facebook的单点登录来登录用户。一旦用户登录,我使用Facebook javascript创建的cookie来获取access_token,我当然将其用于后续请求。< / p>

我遇到了一个问题,但是当用户单独访问facebook.com并在他们身边注销时,我又回到了我的网站。我的应用程序看到fbs_ * cookie仍然存在,并假设他们仍然登录到Facebook。如果该cookie存在,我的网站的功能是进行图形调用以从其Facebook个人资料中提取一些额外信息,然后自动将它们重定向到网站中更深的页面。当我尝试这样做时,我从Facebook收到以下错误:

{

“错误”:{       “type”:“OAuthException”,       “message”:“验证访问令牌时出错”。    } }

问题似乎是,尽管cookie中的数据无效,但它仍然存在。如果这是问题,我该怎么做才能解决它?我可以打电话来确定它是否仍然有效?当然,如果我放置一个Facebook登录按钮(它将正确地确定他们是否登录,但我不能很好地查询Facebook渲染按钮的状态(或者至少它不会是一个真正的优雅问题的解决方案)。感谢任何建议!

1 个答案:

答案 0 :(得分:3)

这是开发Facebook应用时的常见问题。基本上,您只需要在代码中考虑此行为。如果您的应用程序遇到OAuthException,您需要处理错误并让用户重新进行身份验证,将它们重定向回到遇到错误的位置,然后重试api调用。 Facebook提供的API调用不会告诉您访问令牌是否仍然有效,因为每个方法都会通过抛出您获得的异常来告诉您。