我正在网站上实现与Facebook / Twitter / ...功能的连接。这个想法是,一旦用户将他的帐户与外部服务连接起来,我们的网站就可以代表用户发布消息。
使用Twitter没有问题,因为OAuth access_token没有过期。但是对于FB,它会每两个月到期一次,当用户注销,更改密码或明确取消对应用程序的授权时。
我应该如何处理令牌过期?对我而言,如果我可以在不打扰用户的情况下自动刷新令牌,那将是理想的,但除非我错过了某些内容,否则似乎没有任何方法可以做到这一点。所以,现在我有两个想法:
第一个选项对用户来说更容易实现和更清洁。
那么,你是如何处理这种情况的?
谢谢!
答案 0 :(得分:0)
我想我会尝试第一个选项:
如果有更多内容,我会试一试并更新此答案。
答案 1 :(得分:0)
如果用户实际上正在与您的网站进行互动,那么您应该获得新的access_token
(请参阅下文)。如果您使用Facebook API执行与用户相关的离线任务,那么您应该存储access_token
及其到期日期。然后,您需要处理过期的访问令牌,并要求用户再次与您的应用程序进行交互并更新您的记录。
您应该参考此document。你也应该阅读Extending Access Tokens document:
步骤2.刷新长期用户访问令牌
在任何时候,都可以通过重复生成一个新的长期令牌 原始的auth flow ,获得一个新的短期令牌然后 进行与上述相同的交换。在某些情况下,这个更新 长期令牌可以与前一个令牌相同,但我们没有 保证这是真的,你的应用程序不应该依赖它。