问题标签 [ember-simple-auth]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1052 浏览

authentication - 在 Ember App Kit 中测试 ember-simple-auth

我正在尝试为我的 Ember 应用程序执行集成/验收测试。我正在专门测试用户身份验证(例如——提交登录表单)和需要经过身份验证的用户的受保护页面/状态。

关于我的应用程序的一般说明:

  • 使用Ember 应用套件
  • 使用ember-simple-auth进行身份验证
  • 我有api-stubs用于我的 ember-simple-auth 表单,可以使用 Devise 授权器进行访问。在浏览器中运行应用程序时,这些工作正常。

我有三个问题:

1. 设计身份验证器和临时存储

从 ember-simple-auth API 中,它指的是使用 Ephemeral 存储进行测试。我已经这样做了,很像这样。但是,会话似乎仍存储在本地存储中。如果我没有localStorage.clear()在每个测试设置/拆卸测试中执行失败,因为我在每个测试在第一个之后运行时保持登录状态。

当我为我的应用程序使用 Devise 身份验证器时,我是否能够防止在每次测试之间将会话存储在本地存储中?

2. 多重验收测试

如果我尝试登录超过 1的用户test(),我的测试将进入无限循环。第一个测试将通过,但是当第二个测试提交登录表单时,整个测试套件将停止并重新启动。

集成测试#1

集成测试#2

3. EAK api-stubs & Testem

EAK 的 api-stub似乎不适用于 Testem,因此当通过命令行/Testem 运行时,这些验收测试中的“登录”过程会失败。

我尝试设置 sinon.js,但上述问题使我无法确定它是否真正正常工作。使用 ember-simple-auth 成功存根登录用户的最佳方法是什么?是否可以将 EAK 的 api-stub 用于 Testem?

0 投票
2 回答
476 浏览

ember.js - Ember-simple-auth:从 URL 进行身份验证

我有一个要求,我可以附加?auth_token=x到我的应用程序中的任何 URL,它会恢复会话,就好像你有一个 cookie 或详细信息存储在本地存储中一样。

在过去的几个小时里,我已经尝试了所有我能想到的方式来实现这一点,但我没有得到任何结果。这可能吗?我应该在哪里添加这样的功能?

0 投票
1 回答
635 浏览

ruby-on-rails - Ember 简单身份验证基本 URL

我有一个使用Ember CLI设置的 Ember 应用程序- 然后是一个为 Ember 应用程序提供 RESTful API 的 Rails 应用程序(Rails 应用程序是完全独立的,并且在不同的 url 上运行)。我正在尝试使用Ember Simple Auth,但我找不到一种方法来配置与 Ember 应用程序上使用的 on 不同的基本 url。有谁知道这是否可能?

0 投票
1 回答
1604 浏览

ember.js - 使用 Ember 简单身份验证访问用户的帐户信息

我在我的应用程序中使用了ember-simple-auth,它运行良好,但我希望能够在 UI 中显示当前用户的属性(例如电子邮件或姓名)。过去,我使用应用程序初始化程序来执行此操作,并且基本上使用 currentUser 注入所有控制器,但这需要在初始化应用程序时知道当前用户。由于我使用的是 OAuth,因此在加载应用程序时不知道用户。

有没有办法从当前登录的用户那里获取属性?

0 投票
0 回答
164 浏览

cordova - Ember deferReadiness / 运行时暂停

我正在使用 Ember.js 开发一个 Phonegap 应用程序。使用我的应用程序,我通过 oauth (Ember-Simple-Auth) 使用身份验证。在启动我的应用程序时,准备就绪会延迟到我的令牌被刷新并且我可以将授权请求发送到我的后端。

我现在遇到了 phonegap 的问题,有时我不在我的应用程序中时令牌会过期。当我现在更改为我的应用程序时,我将拥有一个过期的令牌,但由于 ember 的整个引导过程没有重新触发(在这种情况下,ember 简单身份验证会意识到令牌已过期并刷新它)我被授权使用过期的令牌. 是否有可能在触发刷新的某些 phonegap 事件(恢复)上推迟应用程序的准备就绪,然后才“释放”应用程序?

更新:

我刚刚检查了应用程序准备好后我不能 deferReadiness 。问题是如何在我没有刷新 access_token 之前阻止应用程序进入另一条路线(-> 调用模型挂钩)?或者是否可以强制转换中的应用程序保持“加载”状态?(我在模型钩子之外有一些后端调用,以便直接显示屏幕并添加额外的内容异步)

0 投票
1 回答
152 浏览

ember.js - 如何在 Ember.SimpleAuth.Authenticators.Base 中访问 DS.store

这是 Ember.SimpleAuth 的基本身份验证器,其中包括一个必须重写的授权方法:

http://ember-simple-auth.simplabs.com/ember-simple-auth-api-docs.html#Ember-SimpleAuth-Authenticators-Base

在授权方法中调用 this.store 时,我得到“this.store is undefined”。基本上,我只想在获得授权后查找用户(使用商店)。

0 投票
1 回答
1833 浏览

ember.js - ember-simple-auth 密码更新和重置

我正在为我的 Ember.js 应用程序使用ember-simple-authDevise 适配器。我需要为用户创建一种方法来执行以下操作:

  1. 更新他们的密码(使用新密码和确认字段)
  2. 恢复/重置他们的密码

有没有办法使用 ember-simple-auth 或推荐的方法来做到这一点?我最初的想法是将它构建到我的 Ember 应用程序中,但这是我应该在 Ember 应用程序之外构建的东西吗?

0 投票
1 回答
1303 浏览

ember-cli - 如何将 ember-simple-auth 与 ember-cli 一起使用?

我正在尝试调整https://github.com/simplabs/ember-simple-auth上的说明,以使用 ember-cli 的 v0.0.28 构建应用程序。我对 ember-cli 和 AMD 模块的使用相当陌生。

任何人都可以帮助以正确的方式/位置导入 ember-simple-auth 而不是 README 中涵盖的全局命名空间吗?

下面的初始化器

编译为

并且__dependency1__是未定义的。

0 投票
1 回答
786 浏览

javascript - 为什么 Ember-Simple-Auth 支持刷新令牌?(JS + OAuth 2.0)

根据我目前在 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 支持刷新令牌?

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

0 投票
2 回答
793 浏览

javascript - EAK 和 ember-simple-auth 自定义身份验证器

我正在尝试为使用 EAK 将身份验证合并到应用程序中获得快速而肮脏的基础。验证功能按预期工作:它查找匹配的电子邮件并在找到时解析承诺。

出于某种原因,restore 方法永远不会在页面重新加载时被调用......或者根本不会被调用。我不知道这是否是 EAK、ESA 或其他我做错的问题。

任何见解将不胜感激!

编辑:

以下是初始认证后本地存储的内容:

在此处输入图像描述

编辑:断点后局部范围的镜头

在此处输入图像描述

编辑:在恢复方法中添加了一些调试行

永远不会到达“日志 3”行。我还尝试手动执行此操作,_this.container.lookup('authenticator:custom')这似乎导致无法到达超出它的任何行。所以看起来查找有问题。

编辑:从初始化程序中删除该行时container.injection('authenticator:custom', 'store', 'store:main'),将调用 restore 方法。显然,如果没有商店,验证器就不是很有用,因此可能需要一种不同的处理方法。

还有更多:似乎对身份验证器的任何注入都会导致此问题,而不仅仅是商店的注入。