如何从passportjs中的刷新令牌获取新的Google oauth访问令牌

似乎有关于如何从刷新令牌获取访问令牌的一些冲突的build议:

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

刷新Passport.js中的令牌

这回答说:“不需要任何cron作业…当用户使用已过期的访问令牌从API请求数据,这应该会导致您的框架失败,更新,然后重试。

OAuth 2.0 – 访问令牌何时应该刷新令牌?

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

       

网上收集的解决方案 "如何从passportjs中的刷新令牌获取新的Google oauth访问令牌"

有几种方法。 其中一个就是检测访问令牌何时失败(我相信401),然后刷新并重新使用它。 但是,大多数产生访问令牌的API也会告诉你它们的到期时间,所以你可以记住这一点,当你要使用的时候,如果在到期时间前10分钟还不到,就刷新一下。 如果一切都失败了,你可以使用tokeninfo端点,当你得到一个新的访问令牌,找出其生存期。