Ember.js js使用Ember Simple Auth从代码中验证用户
我正在尝试使用代码对用户进行身份验证。我有一个用户可以登录的登录表单,它的工作方式很有魅力 但是,当新用户注册并保存表单时,我希望在表单有效时在后台登录他们 我该怎么做 我在authenticate方法的API中发现了以下内容: 对于在没有身份验证路由的情况下工作的应用程序,例如。 因为它会打开一个新窗口来处理那里的身份验证,所以 覆盖的方法,例如: 有人知道如何实现这一点吗。当我调用这个时。获取“会话”。验证将标识和密码数据放在何处 任何提示或建议都将不胜感激Ember.js js使用Ember Simple Auth从代码中验证用户,ember.js,Ember.js,我正在尝试使用代码对用户进行身份验证。我有一个用户可以登录的登录表单,它的工作方式很有魅力 但是,当新用户注册并保存表单时,我希望在表单有效时在后台登录他们 我该怎么做 我在authenticate方法的API中发现了以下内容: 对于在没有身份验证路由的情况下工作的应用程序,例如。 因为它会打开一个新窗口来处理那里的身份验证,所以 覆盖的方法,例如: 有人知道如何实现这一点吗。当我调用这个时。获取“会话”。验证将标识和密码数据放在何处 任何提示或建议都将不胜感激 编辑:也许可以使用用于登录的同一
编辑:也许可以使用用于登录的同一验证器,而不是示例中的app:authenticators:custom?要通过常规登录(可能使用EmberSimpleAuth的默认验证器)或在成功注册后自动对会话进行身份验证,您应该为每种情况使用不同的验证器。对于登录,您将使用带有LoginControllerixin等的默认验证器;对于自动情况,您将使用自定义验证器。有关使用自定义验证器的文档,请参阅EmberSimpleAuth的github repo和API文档中的示例: 基本上你要做的是:
App.AutoAuthenticator = Ember.SimpleAuth.Authenticators.OAuth2.extend({
authenticate: function(credentials) {
if (!Ember.isEmpty(credentials.access_token)) {
return Ember.RSVP.resolve(credentials);
} else {
return this._super(credentials);
}
}
});
Ember.Application.initializer({
name: 'authentication',
initialize: function(container, application) {
container.register('app:authenticators:custom', App.AutoAuthenticator);
Ember.SimpleAuth.setup(container, application);
}
});
this.get('session').authenticate('app:auto-authenticator', { access_token: 'secret token!' })
我并没有实际测试它——请将其视为伪代码 要通过常规登录(可能使用EmberSimpleAuth的默认身份验证器)或在成功注册后自动对会话进行身份验证,您需要为每种情况使用不同的身份验证器。对于登录,您将使用带有LoginControllerixin等的默认验证器;对于自动情况,您将使用自定义验证器。有关使用自定义验证器的文档,请参阅EmberSimpleAuth的github repo和API文档中的示例: 基本上你要做的是:
App.AutoAuthenticator = Ember.SimpleAuth.Authenticators.OAuth2.extend({
authenticate: function(credentials) {
if (!Ember.isEmpty(credentials.access_token)) {
return Ember.RSVP.resolve(credentials);
} else {
return this._super(credentials);
}
}
});
Ember.Application.initializer({
name: 'authentication',
initialize: function(container, application) {
container.register('app:authenticators:custom', App.AutoAuthenticator);
Ember.SimpleAuth.setup(container, application);
}
});
this.get('session').authenticate('app:auto-authenticator', { access_token: 'secret token!' })
我并没有实际测试它——请将其视为伪代码 谢谢你的评论!这很容易理解。还有一个问题,您还知道我将App.AutoAuthenticator方法放在Ember应用程序工具包中的何处吗?我需要把代码放在哪个文件夹中?嗯,不确定余烬应用套件定义了哪些文件夹-我想说一个好地方应该是lib之类的。再次感谢您的评论!但是,您可以测试此代码并将其编辑为工作版本吗?社区将非常高兴!赏金来了-也许其他人可以为你做这件事-我正忙于1.0版的余烬。简单…哈哈,好吧,我们应该用这个答案来做。你需要知道我们对SimpleAuth很兴奋!赏金!谢谢你的评论!这很容易理解。还有一个问题,您还知道我将App.AutoAuthenticator方法放在Ember应用程序工具包中的何处吗?我需要把代码放在哪个文件夹中?嗯,不确定余烬应用套件定义了哪些文件夹-我想说一个好地方应该是lib之类的。再次感谢您的评论!但是,您可以测试此代码并将其编辑为工作版本吗?社区将非常高兴!赏金来了-也许其他人可以为你做这件事-我正忙于1.0版的余烬。简单…哈哈,好吧,我们应该用这个答案来做。你需要知道我们对SimpleAuth很兴奋!赏金!