续订短暂的access_token很长一段时间

时间:2015-09-01 15:10:47

标签: php security oauth token access-token

让我解释标题:

我使用OAuth2身份验证 PHP API

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

当用户请求节点或通过前端恶魔,请求节点定期刷新时,我可以使用refresh_token更新access_token。

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

提前谢谢

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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

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

    • 访问令牌:1小时
    • 刷新令牌:60天(检索新访问令牌时重置60天)
  • 收存箱
    • 访问令牌:永远
    • 刷新令牌:N / A
  • Google DriveGoogle Drive OAuth
    • 访问令牌:1小时,根据我的经验,但似乎这可能会有所不同,具体取决于Google API(以JSON格式返回expires_in字段)
    • 刷新令牌:永远
  • OneDrive
    • 访问令牌:1小时
    • 刷新令牌:6个月(每次调用刷新时获取一个新签名)
  • 的SharePoint
    • 访问令牌:1小时
    • 刷新令牌:6个月(每次调用刷新时获取一个新签名)