Javascript 我应该如何在EmberJS中存储当前用户详细信息?
我有一个使用ember cli生成的EmberJS应用程序。我目前正在使用带有自定义验证器的simple auth 在authenticator中,当用户登录时,我希望保存他的详细信息,以便以后使用。 我有以下代码:Javascript 我应该如何在EmberJS中存储当前用户详细信息?,javascript,ember.js,Javascript,Ember.js,我有一个使用ember cli生成的EmberJS应用程序。我目前正在使用带有自定义验证器的simple auth 在authenticator中,当用户登录时,我希望保存他的详细信息,以便以后使用。 我有以下代码: authenticate: function(options) { var self = this; return new Ember.RSVP.Promise(function(resolve, reject){ API.user.login(options.us
authenticate: function(options) {
var self = this;
return new Ember.RSVP.Promise(function(resolve, reject){
API.user.login(options.username, options.password, true).done(function(data) {
// @TODO: Save current user
resolve(data.id);
}).fail(function() {
reject();
});
});
},
用户数据在变量data.User
中可用
我尝试使用
Ember.set('App.currentUser',data.user)代码>但它不工作。我该怎么办?我认为使用初始值设定项最简单。有几种方法可以解析用户,我认为最简单的方法是将用户的电子邮件与API中的授权令牌一起传递
//initializers/session-user.js
import Ember from "ember";
import Session from "simple-auth/session";
export function initialize(container) {
Session.reopen({
setCurrentUser: function() {
var accessToken = this.get('access_token');
var self = this;
if (!Ember.isEmpty(accessToken)) {
return container.lookup('store:main').find('user', {
email: self.get('user_email')
}).then(function (users){
self.set('currentUser', users.get('firstObject'));
});
}
}.observes('access_token')
});
}
export default {
name: 'session-user',
before: 'simple-auth',
initialize: initialize
};
检查此线程以了解此想法的来源:
如果您使用的是simple auth>0.8.0-beta.1,则需要调整初始值设定项我最终创建了一个自定义的会话
控制器,并在其中设置了当前用户对象,然后从应用程序控制器创建了一个别名
类似于的内容听起来不错,但有一个问题。我已经从登录API获取了用户对象。是否有任何方法可以从验证器访问会话
对象?