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

Posted

技术标签:

【中文标题】从passportjs中的刷新令牌获取oauth访问令牌【英文标题】:Get an oauth access token from refresh token in passportjs 【发布时间】:2013-11-05 02:18:00 【问题描述】:

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

1) “先发制人”方法

在授予访问令牌时保存访问令牌的到期时间 每当使用访问令牌访问 API 时,对照当前时间检查到期时间 如果访问令牌未过期,则使用它访问 API 如果访问令牌已过期(或即将过期),请提供刷新令牌以获取新的访问令牌

2)“处理失败”方法

始终提供访问令牌 如果访问令牌验证失败,提供刷新令牌,获取新的访问令牌

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

【问题讨论】:

【参考方案1】:

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

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

【讨论】:

你是个真正的英雄 :-D【参考方案2】:

我写了一个插件来简化处理这个问题:https://github.com/fiznool/passport-oauth2-refresh

【讨论】:

非常好,谢谢 - 非常顺利地集成了 passport-google-oauth 和 google-api-nodejs-client 与 edit-google-spreadsheet。 参见 4. 动态令牌,在此处的基本用法下:github.com/jpillora/node-edit-google-spreadsheet,我现在只需调用refresh.requestNewAccessToken()

以上是关于从passportjs中的刷新令牌获取oauth访问令牌的主要内容,如果未能解决你的问题,请参考以下文章

在 Passportjs 中刷新 JWT 令牌

如何从 android oAuth 的刷新令牌中获取 access_token

如何从 Google YouTube Data API OAuth 2 iOS 获取刷新令牌

尝试使用spring oauth2中的刷新令牌获取新的访问令牌时出现无效的客户端错误

从Spring Security Oauth2中的Token Store检索访问和刷新令牌的方法

使用 OAuth 2.0 Google App Engine 刷新访问令牌