Facebook:用户访问令牌在用户注销后仍然有效吗?

时间:2012-05-28 21:45:07

标签: facebook

我一直在寻找,但没有找到具体的解决方案。我的FB应用程序的用户获取FB访问令牌,然后手动注销FB并且令牌仍然有效。为什么?这是一个错误吗?如何确定用户是否已注销FB?
无论我使用什么后端,我都可以手动从FB注销并输入https://graph.facebook.com/me?access_token=OLd_ACCESS_TOKEN之类的网址,我将获得有关用户的所有信息。
here:场景#4。令牌必须无效!
我需要的是确定哪个FB用户当前正在我的FB画布网站上执行操作。 FB api为自定义画布应用程序提供了一个入口点,可以获取用户的数据:应用程序的画布URL(您解析signed_request字符串)。从这一点看起来我应该创建cookie或其他什么来记住用户的凭证(id,令牌)并将其用于将来的操作。这不是很好,因为用户可以在另一个浏览器选项卡中重新登录另一个FB帐户并继续使用旧帐户下的应用程序。
好吧,如果我想知道当前用户,那么我需要在每个后端操作之前检查其访问令牌的有效性。我将用户重定向到auth页面(如果还没有)并将其数据存储在cookie中。每次下一次操作时,我都从该cookie中提取用户信息并使用存储的访问令牌。但是现在,当令牌有效时,即使用户已经从FB退出,我也看不到维护它的方法:(
请帮忙!
谢谢。
UPDATE!
刚刚发现我可以为同一个用户获得不同的访问令牌:
1)从我的画布的signed_request参数中提取的令牌Url运行良好,一旦用户注销就变为无效 2)令牌CODE被交换到服务器端auth流(重定向到https://www.facebook.com/dialog/oauth?...,在指定的redirect_uri捕获CODE,使用https://graph.facebook.com/oauth/access_token在令牌上交换CODE?...) - 井,这个记号长期存在 看起来我需要处理第一种情况。无论如何,这一切对我来说都不够清楚 的 UPDATE2
嗯,是。 documentation表示使用signed_request令牌,否则,如果设置未经过身份验证,请运行auth flow并通过其他方式获取令牌。如果用户注销应用程序,最后一种方法会生成令人生气的令牌。

1 个答案:

答案 0 :(得分:1)

嗯,临时解决方案是只使用canvas url的action的signed_request参数中给出的标记。