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

时间:2013-10-18 23:08:32

标签: node.js oauth google-api google-oauth passport.js

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

这个SO答案说护照不涉及刷新访问令牌,它应该通过cron job来完成:

Refresh token in Passport.js

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

OAuth 2.0 - When should an access token be renewed with refresh token?

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

1 个答案:

答案 0 :(得分:3)

有几种方法。一种是检测访问令牌何时失败(我认为是401),然后刷新并重新使用它。但是,大多数产生访问权限的API也会告诉你它们的到期时间,所以你可以记住它,当你即将使用时,如果它在到期时间之前的10分钟之内,则刷新然后。如果所有其他方法都失败了,您可以在获得新的访问令牌时使用tokeninfo端点,以查明其生命周期。