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

时间:2013-10-25 20:17:25

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

要确定何时使用刷新令牌来请求新的访问令牌,我知道两种方法(下面)。如果不修改passport-google-oauth库,这些方法中的任何一种都可以吗?

1)“先发制人”方法

  • 保存访问令牌授予的到期时间
  • 使用访问令牌访问API时,检查当前时间的到期时间
  • 如果访问令牌未过期,请使用它来访问API
  • 如果访问令牌已过期(或接近过期),请提供刷新令牌以获取新的访问令牌

2)“处理失败”方法

  • 始终提供访问令牌
  • 如果访问令牌无法进行身份验证,请提供刷新令牌,获取新的访问令牌

感谢。也欢迎任何替代方案。

2 个答案:

答案 0 :(得分:6)

我写了一个插件,以便更轻松地处理这个问题:https://github.com/fiznool/passport-oauth2-refresh

答案 1 :(得分:5)

请注意,除了在登录期间获取用户配置文件外,Passport不会主动使用访问令牌或刷新令牌。在应用任何必要的API请求时,您的应用程序负责使用这些令牌。因此,您可以实现您描述的任一方法,Passport不参与该过程。

另请参阅:https://github.com/jaredhanson/passport-google-oauth/issues/23