我正在寻找定期轮询Facebook的“正确”方式,以确保用户的oauth令牌仍然有效。我正在使用Facebook将用户的帐户验证到我自己的应用程序中。他们使用我的应用程序并不一定会导致任何Facebook图形调用,但我仍然需要知道oauth令牌是否因为他们登录我的应用程序而失效,例如。通过Facebook密码更改。
Facebook有一个页面解释如何处理失效:https://developers.facebook.com/blog/post/2011/05/13/how-to--handle-expired-access-tokens/ 他们还有一个/我的URL,可以随时点击以查看令牌当前是否有效。 (例如每Check if Ouath token is invalid) 但是,除了用户的初始登录之外,轮询的正确模式和频率是什么?
我正在考虑这样的解决方案:
BAD:检查oauth令牌对我的应用程序的每个请求的有效性。 (太重了,减慢了每个请求,可能会让Facebook疯了)
更好?:当用户向我的应用发出请求时检查oauth令牌的有效性如果超过X分钟未检查到oauth令牌
最后一个解决方案感觉不对,但我找不到任何其他人这样做的引用。
这是轮询oauth有效性的最佳做法吗?任何人都可以指向这个用例的文档,或者确认你自己已经解决了这个问题吗?
答案 0 :(得分:0)
我实际上更喜欢使用您建议的方法。您无需轮询API以验证令牌的完整性 - 如果您尝试使用过期令牌执行API调用,Facebook将返回相应的错误消息。只需添加一个故障安全功能即可对您正在进行的任何呼叫进行检测。