续期短access_token长

Renew short lived access_token for a long time

让我解释一下标题:

我有一个 PHP API 使用 OAuth2 身份验证。

我有一个 NodeJS 应用程序,通过密码授予使用此 API。在 session 中,节点存储每个用户的访问令牌和刷新令牌。

当用户请求节点或通过前端恶魔请求节点定期刷新时,我用 refresh_token 更新 access_token 没有问题。

我的问题是: 我想保持 access_token 短暂存在,因为我听说这是一种进一步的安全性(3600 秒左右),但我希望允许用户在几天后回来并仍然经过身份验证,或者在至少避免再次询问他密码登录。我是否被迫延长访问令牌的生命周期? 节点服务器是否需要刷新用户的令牌,即使他没有请求任何东西?

提前致谢

刷新令牌不能过期或可以有很长的过期时间。

在许多常见的 OAuth2 实现中,刷新令牌的有效期很长(比访问令牌长得多)或根本不会过期。您需要存储链接到节点会话的此刷新令牌(例如在数据库中)。然后,当用户回来时,只需使用相关的刷新令牌检索新的访问令牌。

根据http://blog.cloud-elements.com/oauth-2-0-access-refresh-token-guide

  • 盒子
    • 访问令牌:1 小时
    • 刷新令牌:60 天(检索新访问令牌时重置 60 天)
  • 投递箱
    • 访问令牌:永远
    • 刷新令牌:N/A
  • Google 驱动Google 驱动 OAuth
    • 访问令牌:1 小时,根据我的经验,但这似乎会因 Google API 而异(expires_in 字段在 JSON 中返回)
    • 刷新令牌:永远
  • OneDrive
    • 访问令牌:1 小时
    • Refresh token: 6 months (每次调用refresh获取一个新的)
  • SharePoint
    • 访问令牌:1 小时
    • Refresh token: 6 months (每次调用refresh获取一个新的)