3

关于如何从刷新令牌中获取访问令牌似乎有一些相互矛盾的建议:

这个 SO 回答说 passportjs 不参与刷新访问令牌,它应该通过 cron 作业完成:

Passport.js 中的刷新令牌

这个 SO 答案说“不需要任何 cron 作业......当用户使用已过期的访问令牌从 API 请求数据时,这应该会触发您的框架失败,更新,然后重试。”

OAuth 2.0 - 何时应使用刷新令牌更新访问令牌?

确保我们始终为 Google 提供有效访问令牌的最简单方法是什么?现在,我们只是将刷新令牌存储在数据库中并且从不使用它,这会在每次访问令牌过期时强制用户通过“允许/拒绝权限”流程。

4

1 回答 1

3

有几种方法。一种是仅检测访问令牌何时失败(我相信是 401),然后刷新它并重新使用它。但是,大多数产生访问令牌的 API 也会告诉您它们的到期时间,因此您只需记住这一点,当您即将使用时,如果在到期时间前不到 10 分钟,请刷新。如果一切都失败了,您可以在获得新的访问令牌时使用 tokeninfo 端点来找出它的生命周期。

于 2013-10-20T04:28:40.293 回答