更新长寿命访问令牌服务器端

Posted

技术标签:

【中文标题】更新长寿命访问令牌服务器端【英文标题】:Renew long lived access token server side 【发布时间】:2012-05-25 22:27:45 【问题描述】:

我们正在从 facebook 检索长期存在的访问令牌,但我们需要自动更新此令牌,以便它不会每 60 天过期一次。

阅读文档说您只能使用端点交换 short living 令牌。

由于我们没有短期令牌,我们如何在服务器端执行此操作而无需每 60 天手动重新授权一次?

【问题讨论】:

【参考方案1】:

不可能无休止地扩展令牌。在此处查看场景 4 https://developers.facebook.com/roadmap/offline-access-removal/:

使用下面的新端点,您将能够扩展 现有的、未过期的、短期用户的过期时间 访问令牌。请注意,端点只能用于扩展 短期用户 access_tokens。如果你传递一个 access_token 有一个很长的过期时间,端点将简单地通过它 相同的 access_token 返回给您,无需更改或扩展 过期时间。

要获得长寿命用户 access_token 只需传递您自己的 client_id (您的 app_id)、您的 app_secret 以及未过期的、短暂的 access_token 到下面的端点。您将收到一个新的 长寿命用户access_token;此 access_token 将另外存在 到传递给端点的短期访问令牌。 如果您想刷新一个仍然有效的长寿命 access_token,您必须先获得一个新的短寿命用户 access_token 和 然后调用下面的相同端点。返回的 access_token 将有 一个新的长寿命到期时间,然而,access_token 本身 可能与之前授予的 long-lived 相同也可能不同 访问令牌。

【讨论】:

如果我们使用页面访问令牌,它们是永久的吗?目前尚不清楚这些是否也会在 60 天内到期 同一个链接,场景 5:查询 [User ID]/accounts 端点现在将为用户管理的页面提供不会过期的页面访问令牌。 @avs099 我正在寻求解决类似的问题。那么目前的状态是没有办法延长长寿命令牌,我们必须重做授权流程? 引用的链接已更改为:developers.facebook.com/docs/roadmap/completed-changes/… btw .. 来自文档:要获得一个长期存在的页面访问令牌,请将用户访问令牌交换为一个长期存在的令牌,如上所述,然后请求页面令牌。生成的页面访问令牌不会有任何过期时间。

以上是关于更新长寿命访问令牌服务器端的主要内容,如果未能解决你的问题,请参考以下文章

google oauth refresh token 长寿命解决方案

Oauth2 - 客户端凭证流中的长寿命令牌与重新身份验证

为啥不使用长寿命会话 ID 来代替带有令牌的持久 cookie?

刷新令牌如何比长寿命的 JWT 更安全?

Facebook 服务器端 oauth 令牌

为啥要在服务器端保存刷新令牌?