问题标签 [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 投票
1 回答
1438 浏览

ember.js - 需要 Ember-Simple-Auth currentUser 示例帮助

所以我意识到这里的帐户示例:https ://github.com/simplabs/ember-simple-auth/blob/8863c032fcea6148a5b3365be5d66dc2389d301d/examples/4-authenticated-account.html

提供用于检索当前登录帐户的代码。当我试图让它在 Ember-CLI 应用程序中工作时,我对这个示例有几个问题。

SimpleAuth但是,在示例中使用了它,我不知道它是从哪里来的,import SimpleAuth from ...但我不知道从哪个文件导入它。

此外,我想知道服务器的响应现在是否需要返回 user_id 以及 access_token/refresh_token?

如果是这样,该oauth是否兼容?

编辑:我当前的代码

身份验证效果很好,只是我没有看到 ember 尝试进行的任何调用 /user/id。

来自服务器的示例响应:

0 投票
1 回答
93 浏览

ember.js - Ember - 如何从我的控制器调用路由的操作

我正在使用 ember-simple-auth 和ember-validations来验证我的用户登录凭据

为了验证我在控制器中“覆盖”了登录路由的登录操作。

问题是在验证后我现在想冒泡;但是,由于 validate 返回一个承诺,我不能简单地返回 true。

我试着用我的路线打电话,this.get('target').send('login')但显然它不起作用。我试过this.send('login')了,但这会创建一个无限循环,因为控制器会递归地调用自己。

0 投票
1 回答
183 浏览

ember.js - 如何使用来自 imy CustomAuthenticator 的 ember-simple-oauth2 进行身份验证

我能够使用我自己的 customAuthenticator 成功进行身份验证。

我需要使用 customAuthenticator,因为身份验证后端服务器要求请求标头具有 client_id 和 client_secret。

像这样的东西。

但是我看到在 simple-auth-oauth2.js 文件中有几个实用程序函数,验证方法使用这些函数。

方法如:absolutizeExpirationTime(response.expires_in); scheduleAccessTokenRefresh(response.expires_in, expiresAt, response.refresh_token);

我的问题是如何从我的 customAuthenticator 调用 simple-auth-oauth2 中的这些方法。

我不想将这些方法复制到我的 customAuthenticator 文件中.....

0 投票
1 回答
406 浏览

ember.js - Ember 简单身份验证承诺

我正在尝试使用 Ember Simple Auth 处理错误消息,我正在使用设计扩展。

文件:app/controllers/login.js

目前我总是收到错误消息。我不知道如何仅在发生错误时显示它。我试过了

但后来我收到错误“_super() 未定义”。

0 投票
2 回答
5222 浏览

ember.js - 如何将用户存储在会话中

我正在尝试使用 django-rest-framework 后端设置 ember-simple-auth,但是在将用户保存到会话时遇到了一些麻烦。我必须能够在我的模板中做这样的事情:

因此,按照我找到的几个指南,我已经完成了身份验证和授权工作,以便我可以获得有效的令牌并在请求中使用。为了让用户进入会话,我进行了修改App.CustomAuthenticator.authenticate,以便在返回令牌时,用户名也存储到会话中:

然后我修改Application.intializersession一个user属性:

但是,在{{session.user.username}}渲染时它只是一个空字符串。我的问题是:

  1. 这真的是将用户分配到会话的最佳方式吗?这对我来说似乎很笨拙,但我看不到更好的东西。
  2. 我假设空字符串是因为返回了 Promise 而不是User对象,那么我该如何解决呢?
0 投票
1 回答
1461 浏览

ember.js - can I use ember-simple-auth with express/passport session domain cookies

I have a project going on and I've been using the server side to handle my authentication and authorization through express/passport domain cookies which kind of auto-magically handle the state by sending the sid cookie back and forth.

I had not built much of an auth management on the client, I was just getting the user data which express would bootstrap for me in the server view as a global js object. I wanted to handle this better in ember so I started implementing ember-simple-auth and I was able to handle the logins, state etc. pretty well there but it appears that it always depends on a token strategy.

Right now my code looks like this and as you can see I'm having to resolve a promise with a token object in it to make it work, but my desired strategy doesn't require tokens.

My question is can ember-simple-auth be adapted to work with the express/passport domain cookies or do i have to change my server to use a bearer strategy or oauth2 or something.

Thank you.

0 投票
1 回答
119 浏览

session - Ember SimpleAuth 验证对受保护资源的访问

我有一个应用程序,用户可以在其中编辑各种“页面”中的组织。

我希望用户能够查看任何组织,但如果用户对组织具有管理员权限,则各个页面应该可以编辑。

基于服务器处理的一些棘手的逻辑,组织是可编辑的。用户模型有一个组织属性来反映这些管理员权限。这反映在组织对象中。在服务器上,它是一个多对多表以及一些其他逻辑。

我正在使用 Ember SimpleAuth 通过登录页面进行身份验证并授权对我的 API 的请求。我使用自定义会话为经过身份验证的用户加载数据。

我有一个这样的控制器,它可以在我的模板中编辑属性。

所以在我的模板中我做了这样的事情......

关键是{{#if session.isAuthenticated}}声明。这可确保用户只有在登录后才能访问受限功能。

到目前为止一切都很正常(我认为)。

但是,我希望能够询问我的会话当前用户是否有权访问相关组织。所以我想改变{{#if session.isAuthenticated}}to{{#if session.isAuthorised}}并让它根据我的数据检查当前的模型/路线。

我怎样才能最好地做到这一点?有更好的选择吗?如何单独保护资源?

PS为我的“授权”的英文拼写道歉。

0 投票
1 回答
284 浏览

ember-cli - 自定义会话干扰验收测试

我正在使用ember-cli-simple-authember-cli-simple-auth-devise在一个ember-cli项目中。

我还Session通过初始化程序自定义 simple-auth:

在一个简单的验收测试(一个简单的调用ok(1))中,我收到以下错误

如果我注释掉该self.set('currentUser', user);行,错误就会消失。

处理此问题的适当方法是什么?有没有办法在测试中忽略这个初始化程序?

我也收到此日志消息:

没有为 Ember 简单身份验证配置授权工厂 - 如果需要授权后端请求,请指定一个。

0 投票
1 回答
219 浏览

ember.js - 来自自己的控制器的 Ember 简单身份验证 invalidateSession

目前我面临的问题是我需要在我自己的一个控制器中使用 ember-simple-auth ( https://github.com/simplabs/ember-simple-auth/ )中的 invalidateSession() 操作。

我通常像他们在示例中那样使用它:{{ action 'invalidateSession' }}在我的车把模板中。preLogout在我打电话之前我需要做一些事情,invalidateSession()所以需要有一种方法 - 但目前我无法弄清楚如何。

模板:

{{ action 'preLogout' target='view' }}

看法:

控制器:

谢谢

0 投票
1 回答
312 浏览

ember.js - ember-simple-auth:在 ajax 错误后保存用户的 URL

我在我的 ember-js 应用程序中应用了 ember-simple-auth-0.6.4.js 并且有一种情况,这很常见。这是步骤的顺序。

  1. 用户在应用程序中进行身份验证(我为此使用自定义身份验证器)。所以会话变得有效。
  2. 大约 20 分钟不活动后,后端会话变得无效。
  3. 用户转到一条路线(从 AuthenticatedRouteMixin 派生),并且由于客户端应用程序中的 ember 会话仍然有效->“会话已验证”检查通过。
  4. 然后调用路由模型钩子,在其中我尝试使用 ajax 请求从后端加载一些数据 - 我得到 401 未经授权的响应,因为后端会话无效。
  5. 在 401 错误响应客户端的应用程序会话无效后 - 然后调用 application-route-mixin 中定义的 sessionInvalidationSucceeded() 处理程序,其中位置更改:window.location.replace(Configuration.applicationRootUrl);

问题是:如果在 applicationRootUrl 中定义的 url - 在经过身份验证的路由下 - 登录页面将显示给用户,但在身份验证用户再次转到 applicationRootUrl 后,而不是最初发生 ajax 错误的页面。

我对此的解决方案:

  • 在 AuthenticatedRouteMixin beforeModel() 钩子中,我存储了最后一个转换:

    Configuration.beforeInvalidationTransition = transition;

  • 在 ApplicationRouteMixin 我重新定义 sessionInvalidatedSucceeded 钩子:

    sessionInvalidationSucceeded: function() { if (Configuration.beforeInvalidationTransition) { this.get(Configuration.sessionPropertyName) .set('attemptedTransition',Configuration.beforeInvalidationTransition); } this.transitionTo(Configuration.authenticationRoute);

因此,如果发生 401 错误,用户将被重定向到登录页面(Configuration.authenticationRoute),并且发生错误的路由 - 存储到尝试转换,因此在成功登录后,用户将被重定向到他停止工作的地方。

这个问题有意义还是有更优雅的解决方案?