OAuth访问令牌和页面刷新

时间:2013-08-16 01:00:40

标签: ajax html5 security session oauth

我可以看到OAuth适用于完全Ajaxified应用程序,因为本地JS代码总是可以将Bearer令牌重放到服务器。但是,如果我们有页面刷新会发生什么?在这种情况下,我假设我们丢失了令牌,然后返回OAuth重定向过程以获得新的访问令牌。这是否正确,是否存在避免这种情况的模式,例如将访问令牌存储在HTML5本地存储中?

1 个答案:

答案 0 :(得分:1)

如果您正在谈论OAuth 2.0,那么当您使用OAuth 2.0提供程序进行身份验证时,您可能会请求a refresh token和访问(或承载)令牌。刷新令牌应该直接返回到托管Web应用程序的服务器,以某种方式存储(可能是会话状态)并且不会暴露给浏览器。浏览器可以使用访问令牌向需要它的安全服务/端点发出请求,但它的生命周期应该很短(无论是否有页面刷新)。当它到期时(再次可能或可能不是由于页面刷新),客户端应用程序可以向托管服务器发出刷新令牌的请求。然后,服务器可以使用刷新令牌获取新的访问令牌而无需用户再次登录。

在OAuth 2.0规范的refresh token section中有一个图表。

OAuth 2.0的使用方式有多种变体,细节可能会因您的特定方案和实施而有所不同,但希望能够让您高度了解如何避免在访问令牌时提示用户重新进行身份验证到期或页面重新加载。