我正在PHP Web应用程序中实现OAuth2。访问令牌分发到javascript Web客户端,到期时间为1小时,并提供刷新令牌。如果客户端在下次导航到我的Web应用程序时退出浏览器超过1小时,则在对资源服务器的初始请求期间,访问令牌不再有效。然后资源服务器返回一个不受保护的页面。
如果我有:
资源服务器是否应该返回不受保护的页面,并且使用javascript的客户端尝试刷新访问令牌,如果成功强制页面重新加载?那是常见的吗?或者我错过了什么,所以资源服务器没有被调用两次?
目前,客户端将刷新令牌传递给资源服务器,因此从技术上讲,资源服务器可以刷新访问令牌。但是,RFC 6749似乎并不允许这似乎表明资源服务器永远不会看到刷新令牌。
“刷新令牌必须在运输和存储过程中保密,并且 仅在授权服务器和客户端之间共享 刷新令牌已经发出。“
答案 0 :(得分:0)
在任何情况下,正如您所指出的那样,永远不会将刷新令牌传递给资源服务器。刷新令牌仅呈现给授权服务器。但是:
Javascript客户端等浏览器内客户端应使用隐式授权来获取其访问令牌。在这种情况下,没有发布的刷新令牌。这应该不是浏览器内客户端的问题,因为在这种情况下用户存在,因此不需要刷新令牌来获取新的访问令牌:用户将再次向授权服务器进行身份验证,希望利用现有的SSO会话为此。