【问题标题】:Using refresh tokens between sessions在会话之间使用刷新令牌
【发布时间】:2015-09-09 15:19:25
【问题描述】:

我正在我的 PHP Web 应用程序中实现 OAuth2。访问令牌分发给 1 小时到期的 javascript Web 客户端,并提供刷新令牌。如果客户端在下次导航到我的 Web 应用程序时退出浏览器超过 1 小时,则访问令牌在对资源服务器的初始请求期间不再有效。然后资源服务器返回一个不受保护的页面。

如果我有:

  1. 访问令牌过期
  2. 有效的刷新令牌
  3. 新会话

资源服务器是否应该返回一个不受保护的页面,并且使用 javascript 的客户端尝试刷新访问令牌,如果成功则强制页面重新加载?这很常见吗?还是我遗漏了什么,所以资源服务器不会被调用两次?

目前客户端将刷新令牌传递给资源服务器,因此从技术上讲,资源服务器可以刷新访问令牌。但是,RFC 6749 似乎不允许这样做,这似乎表明资源服务器永远不会看到刷新令牌。

“刷新令牌必须在传输和存储过程中保密,并且 仅在授权服务器和客户端之间共享 已颁发刷新令牌。”

【问题讨论】:

    标签: javascript php session oauth-2.0


    【解决方案1】:

    在任何情况下,正如您所指出的,永远不会将刷新令牌传递给资源服务器。刷新令牌只提供给授权服务器。但是:

    浏览器内客户端(例如 Javascript 客户端)应使用隐式授权来获取其访问令牌。在这种情况下,不会发出刷新令牌。这对于浏览器内的客户端应该不是问题,因为在这种情况下用户存在,因此不需要刷新令牌来获取新的访问令牌:用户将再次向授权服务器进行身份验证,希望利用现有的 SSO 会话为此。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-11-16
      • 2021-06-16
      • 2019-06-29
      • 2017-07-08
      • 2022-10-31
      • 2020-07-12
      • 1970-01-01
      相关资源
      最近更新 更多