【发布时间】:2017-09-24 09:19:59
【问题描述】:
我设置了一个使用 OAuth2 密码授予身份验证的无会话应用程序。当用户使用用户名和密码登录我的应用程序时,我将访问令牌保存在 sessionStorage 中,有效期为 30 分钟。我还在sessionStorage 中保存了一个刷新令牌,以防我需要将会话延长超过 30 分钟。刷新令牌的有效期为 30 天。
如果在登录时选中了“记住我”复选框,我会将访问和刷新令牌保存在 localStorage 中,这样只要刷新令牌有效,它们就会一直存在。
除了几个问题之外,这两个似乎都可以正常工作:
- 如果浏览器保持打开状态且用户未注销,会话可能会持续 30 天。
- sessionsStorage 不会在窗口/选项卡之间持续存在,因此如果用户打开一个新窗口,他们需要再次登录。当“记住我”复选框被选中时,这不是问题,因为localStorage 在窗口之间确实存在。
【问题讨论】:
标签: javascript session oauth oauth-2.0