1

我正在网站上实现与 Facebook/Twitter/... 的连接功能。这个想法是,一旦用户将他的帐户与外部服务连接起来,我们的网站就可以代表用户发布消息。

使用 Twitter 没有问题,因为 OAuth access_token 不会过期。但是对于 FB,它确实每两个月到期一次,当用户注销、更改密码或明确取消对应用程序的授权时。

我应该如何处理令牌过期?对我来说,如果我可以在不打扰用户的情况下自动刷新令牌将是理想的,但除非我错过了一些东西,否则似乎没有任何方法可以做到这一点。所以,现在我有两个想法:

  • 不那么尴尬的方式:每次用户登录网站时检查令牌是否已过期,并通知用户她也重新授权了应用程序。
  • 更尴尬的方式:每次在我们的网站中触发“发布到社交网络”事件时,检查令牌是否已过期并要求用户重新授权。

第一个选项对用户来说更容易实现和更清晰。

那么,你是如何处理这种情况的呢?

谢谢!

4

2 回答 2

0

我想我会尝试第一个选项:

如果还有更多内容,我会尝试并更新此答案。

于 2012-11-08T11:27:52.327 回答
0

如果用户实际上正在与您的网站进行交互,那么您应该会获得新鲜感access_token(请阅读下文)。如果您使用 Facebook API 执行与用户相关的离线任务,那么您应该存储access_token它们及其到期日期。然后您需要处理过期的访问令牌并要求用户再次与您的应用程序交互并更新您的记录。

你应该参考这个文件。您还应该阅读扩展访问令牌文档

步骤 2. 刷新长期用户访问令牌

在任何时候,您都可以通过重复原始身份验证流程,获取新的短期令牌,然后执行与上述相同的交换来生成新的长期令牌。在某些情况下,这个较新的长寿命令牌可能与前一个令牌相同,但我们不保证这是真的,您的应用程序不应依赖它。

于 2012-11-08T14:17:09.513 回答