【发布时间】:2015-06-10 17:30:53
【问题描述】:
实现一个与 OAuth 2.0 服务器对话的网站。用户登录,获取不记名令牌,一切都很好,直到他刷新页面并且不记名令牌丢失。
为了防止我的用户再次登录,我正在考虑使用刷新令牌并从服务器请求一个新的不记名令牌。这意味着我必须在本地缓存刷新令牌。
这是不受欢迎的吗?人们如何在页面刷新时存储不记名令牌?
【问题讨论】:
标签: oauth-2.0 access-token page-refresh
实现一个与 OAuth 2.0 服务器对话的网站。用户登录,获取不记名令牌,一切都很好,直到他刷新页面并且不记名令牌丢失。
为了防止我的用户再次登录,我正在考虑使用刷新令牌并从服务器请求一个新的不记名令牌。这意味着我必须在本地缓存刷新令牌。
这是不受欢迎的吗?人们如何在页面刷新时存储不记名令牌?
【问题讨论】:
标签: oauth-2.0 access-token page-refresh
存储 Bearer 令牌的常用方法是在会话 cookie 中,这样令牌不会丢失,除非用户关闭浏览器。这是执行此操作的常用方法,但您可以将其存储在任何您想要的位置,例如在 HTML5 存储中。它会一直有用到过期为止。但是,将令牌包含在请求中(通常在 Authorization 标头中)很重要,因此您必须从存储它的任何位置恢复它。
刷新令牌不是用来请求新令牌,而是在它过期之前更新它。例如,如果令牌配置为在一小时内到期,您可以使用刷新令牌在该小时内对其进行更新。如果您的令牌过期,则无法再使用刷新令牌。
【讨论】:
Refresh Token 假设在访问令牌到期时正在使用中。
似乎当用户刷新浏览器时,会话“已死”,因此身份验证丢失。你在不同的浏览器上检查过吗?你能检查刷新后“会话”是否存在吗? (在 chrome 中很容易检查)。你用的是弹簧吗?从技术上讲,我认为您必须配置您的应用程序以使用会话...
【讨论】: