在会话之间使用刷新令牌

时间:2015-06-23 17:18:25

标签: javascript php session oauth-2.0

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

如果我有:

  1. 过期访问令牌
  2. 有效刷新令牌
  3. 新会话
  4. 资源服务器是否应该返回不受保护的页面,并且使用javascript的客户端尝试刷新访问令牌,如果成功强制页面重新加载?那是常见的吗?或者我错过了什么,所以资源服务器没有被调用两次?

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

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

1 个答案:

答案 0 :(得分:0)

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

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