【问题标题】:Posting to Facebook on behalf of the user: how to handle token expiration?代表用户发帖到 Facebook:如何处理令牌过期?
【发布时间】:2012-11-08 22:17:09
【问题描述】:

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

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

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

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

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

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

谢谢!

【问题讨论】:

    标签: facebook oauth-2.0


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

      你应该参考这个document。你也应该阅读Extending Access Tokens document

      第 2 步。刷新长期用户访问令牌

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

      【讨论】:

        猜你喜欢
        • 2016-01-14
        • 1970-01-01
        • 1970-01-01
        • 2012-10-05
        • 2021-12-10
        • 2021-08-03
        • 2021-12-31
        • 1970-01-01
        • 2021-05-15
        相关资源
        最近更新 更多