【问题标题】:Why does Ember-Simple-Auth support refresh tokens? (JS + OAuth 2.0)为什么 Ember-Simple-Auth 支持刷新令牌? (JS + OAuth 2.0)
【发布时间】:2014-05-28 13:47:23
【问题描述】:

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

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

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

我读到"Resource Owner Password Credentials" grant type in OAuth 2.0 allows the usage of refresh tokes,但本段中的文字是针对客户的一个非常笼统的定义编写的。

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

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

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

感谢您抽出宝贵时间考虑。 最好的!马库斯

【问题讨论】:

    标签: javascript ember.js oauth-2.0 ember-simple-auth


    【解决方案1】:

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

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

    【讨论】:

    • 感谢您的澄清!我认为将其中一些想法放入文档中会有所帮助。据我了解 OAuth 规范,刷新令牌应该比访问令牌更长寿,所以它实际上可能会成为一个问题。我正在为其他基于服务器的应用程序添加刷新令牌,并且(现在我知道)我不会为 Ember 应用程序使用刷新令牌。
    猜你喜欢
    • 1970-01-01
    • 2012-02-05
    • 2015-11-04
    • 2014-09-22
    • 2015-05-17
    • 1970-01-01
    • 2015-04-01
    • 2018-03-28
    • 1970-01-01
    相关资源
    最近更新 更多