关于如何从刷新令牌获取访问令牌,似乎有一些相互矛盾的建议:
这个 SO 答案说 passportjs 不参与刷新访问令牌,应该通过 cron 作业来完成:
刷新护照中的令牌.js
这个 SO 答案说"不需要任何 cron 作业......当用户使用已过期的访问令牌从 API 请求数据时,这应该会触发框架失败、续订,然后重试。
OAuth 2.0 - 何时应使用刷新令牌续订访问令牌?
确保我们始终向 Google 提供有效访问令牌的最简单方法是什么?现在,我们只是将刷新令牌存储在数据库中,从不使用它,这会强制用户在每次访问令牌过期时通过"允许/拒绝权限"流。
有几种方法。 一种是只检测访问令牌何时失败(我相信是 401),然后刷新它并重复使用它。 但是,大多数生成访问令牌的 API 也会告诉您它们的到期时间,因此您可以记住这一点,并且在您将要使用时,如果它不到到期时间前 10 分钟,请刷新。 如果所有其他方法都失败了,则可以在获取新的访问令牌时使用 tokeninfo 终结点来了解其生存期。