Javascript 我应该如何在EmberJS中存储当前用户详细信息?

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

我有一个使用ember cli生成的EmberJS应用程序。我目前正在使用带有自定义验证器的simple auth

在authenticator中,当用户登录时,我希望保存他的详细信息,以便以后使用。 我有以下代码:

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获取了用户对象。是否有任何方法可以从验证器访问
会话
对象?