问题标签 [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.
ember.js - 需要 Ember-Simple-Auth currentUser 示例帮助
提供用于检索当前登录帐户的代码。当我试图让它在 Ember-CLI 应用程序中工作时,我对这个示例有几个问题。
SimpleAuth
但是,在示例中使用了它,我不知道它是从哪里来的,import SimpleAuth from ...
但我不知道从哪个文件导入它。
此外,我想知道服务器的响应现在是否需要返回 user_id 以及 access_token/refresh_token?
如果是这样,该oauth是否兼容?
编辑:我当前的代码
身份验证效果很好,只是我没有看到 ember 尝试进行的任何调用 /user/id。
来自服务器的示例响应:
ember.js - Ember - 如何从我的控制器调用路由的操作
我正在使用 ember-simple-auth 和ember-validations来验证我的用户登录凭据
为了验证我在控制器中“覆盖”了登录路由的登录操作。
问题是在验证后我现在想冒泡;但是,由于 validate 返回一个承诺,我不能简单地返回 true。
我试着用我的路线打电话,this.get('target').send('login')
但显然它不起作用。我试过this.send('login')
了,但这会创建一个无限循环,因为控制器会递归地调用自己。
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 文件中.....
ember.js - Ember 简单身份验证承诺
我正在尝试使用 Ember Simple Auth 处理错误消息,我正在使用设计扩展。
文件:app/controllers/login.js
目前我总是收到错误消息。我不知道如何仅在发生错误时显示它。我试过了
但后来我收到错误“_super() 未定义”。
ember.js - 如何将用户存储在会话中
我正在尝试使用 django-rest-framework 后端设置 ember-simple-auth,但是在将用户保存到会话时遇到了一些麻烦。我必须能够在我的模板中做这样的事情:
因此,按照我找到的几个指南,我已经完成了身份验证和授权工作,以便我可以获得有效的令牌并在请求中使用。为了让用户进入会话,我进行了修改App.CustomAuthenticator.authenticate
,以便在返回令牌时,用户名也存储到会话中:
然后我修改Application.intializer
了session
一个user
属性:
但是,在{{session.user.username}}
渲染时它只是一个空字符串。我的问题是:
- 这真的是将用户分配到会话的最佳方式吗?这对我来说似乎很笨拙,但我看不到更好的东西。
- 我假设空字符串是因为返回了 Promise 而不是
User
对象,那么我该如何解决呢?
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.
session - Ember SimpleAuth 验证对受保护资源的访问
我有一个应用程序,用户可以在其中编辑各种“页面”中的组织。
我希望用户能够查看任何组织,但如果用户对组织具有管理员权限,则各个页面应该可以编辑。
基于服务器处理的一些棘手的逻辑,组织是可编辑的。用户模型有一个组织属性来反映这些管理员权限。这反映在组织对象中。在服务器上,它是一个多对多表以及一些其他逻辑。
我正在使用 Ember SimpleAuth 通过登录页面进行身份验证并授权对我的 API 的请求。我使用自定义会话为经过身份验证的用户加载数据。
我有一个这样的控制器,它可以在我的模板中编辑属性。
所以在我的模板中我做了这样的事情......
关键是{{#if session.isAuthenticated}}
声明。这可确保用户只有在登录后才能访问受限功能。
到目前为止一切都很正常(我认为)。
但是,我希望能够询问我的会话当前用户是否有权访问相关组织。所以我想改变{{#if session.isAuthenticated}}
to{{#if session.isAuthorised}}
并让它根据我的数据检查当前的模型/路线。
我怎样才能最好地做到这一点?有更好的选择吗?如何单独保护资源?
PS为我的“授权”的英文拼写道歉。
ember-cli - 自定义会话干扰验收测试
我正在使用ember-cli-simple-auth
和ember-cli-simple-auth-devise
在一个ember-cli
项目中。
我还Session
通过初始化程序自定义 simple-auth:
在一个简单的验收测试(一个简单的调用ok(1)
)中,我收到以下错误
如果我注释掉该self.set('currentUser', user);
行,错误就会消失。
处理此问题的适当方法是什么?有没有办法在测试中忽略这个初始化程序?
我也收到此日志消息:
没有为 Ember 简单身份验证配置授权工厂 - 如果需要授权后端请求,请指定一个。
ember.js - 来自自己的控制器的 Ember 简单身份验证 invalidateSession
目前我面临的问题是我需要在我自己的一个控制器中使用 ember-simple-auth ( https://github.com/simplabs/ember-simple-auth/ )中的 invalidateSession() 操作。
我通常像他们在示例中那样使用它:{{ action 'invalidateSession' }}
在我的车把模板中。preLogout
在我打电话之前我需要做一些事情,invalidateSession()
所以需要有一种方法 - 但目前我无法弄清楚如何。
模板:
{{ action 'preLogout' target='view' }}
看法:
控制器:
谢谢
ember.js - ember-simple-auth:在 ajax 错误后保存用户的 URL
我在我的 ember-js 应用程序中应用了 ember-simple-auth-0.6.4.js 并且有一种情况,这很常见。这是步骤的顺序。
- 用户在应用程序中进行身份验证(我为此使用自定义身份验证器)。所以会话变得有效。
- 大约 20 分钟不活动后,后端会话变得无效。
- 用户转到一条路线(从 AuthenticatedRouteMixin 派生),并且由于客户端应用程序中的 ember 会话仍然有效->“会话已验证”检查通过。
- 然后调用路由模型钩子,在其中我尝试使用 ajax 请求从后端加载一些数据 - 我得到 401 未经授权的响应,因为后端会话无效。
- 在 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),并且发生错误的路由 - 存储到尝试转换,因此在成功登录后,用户将被重定向到他停止工作的地方。
这个问题有意义还是有更优雅的解决方案?