2

根据我目前在 OAuth 2.0 规范中所读到的内容,不建议将任何机密信息存储在可以通过 Javascript 访问的浏览器中。

这里的讨论似乎也同意这一点: Using OAuth2 in HTML5 Web App

我目前正在构建一个基于 Ember 的应用程序作为我的 REST 样式 API 后端的前端,并且我正在使用 Ember-Simple-Auth 作为处理用户登录的库,它实现了资源所有者密码凭据工作流并且还明确支持刷新令牌。

我读到OAuth 2.0 中的“资源所有者密码凭据”授权类型允许使用刷新令牌,但本段中的文本是针对客户端的非常一般定义而编写的。

由于 Ember.js 是一个用于编写在浏览器中运行的单页 webapps 的框架,我现在想知道......

在 Ember 应用程序中使用刷新令牌是否安全?上面提到的讨论似乎不同意。这导致我:

为什么 Ember-Simple-Auth 支持刷新令牌?

感谢您花时间考虑。最好的!马库斯

4

1 回答 1

3

使用刷新令牌不如不使用刷新令牌安全的唯一一点是刷新令牌不会过期。因此,如果有人对您的机器进行物理访问(或某事被 HTTPS 破坏),则访问令牌可能已经过期,而刷新令牌仍处于活动状态并可用于获取新的访问令牌(这意味着安全漏洞永远存在)。

根据大众的需求,Ember.SimpleAuth 内置了对此的支持。不过,有两件事要说:除了用户需要确保没有人可以物理访问他们的机器(这是大多数站点所需的安全策略,因为没有站点通常会过期会话或仅在很长时间之后)客户端和服务器仅通过(正确设置)HTTPS 进行通信至关重要。第二件事是 Ember.SimpleAuth 仅在服务器响应中有刷新令牌时才使用刷新令牌。因此,如果您对此感到担忧(我认为这是正确的),请不要首先在服务器端启用刷新令牌。

于 2014-05-28T15:31:42.097 回答