Ember.js 当用户';s的电子邮件更改

Ember.js 当用户';s的电子邮件更改,ember.js,ember-simple-auth,Ember.js,Ember Simple Auth,我使用的是ember simple auth Desive 当用户登录时,用户的电子邮件和令牌将添加到每个请求的标题中 当用户更改其电子邮件地址时,我可以更新会话的电子邮件,但这不会传播到标题 触发会话电子邮件和标题电子邮件更新的最佳方式是什么?以下是我最后所做的: app/sessions/custom.js import Ember from 'ember'; import DS from 'ember-data'; import Session from 'simple-auth/sess

我使用的是ember simple auth Desive

当用户登录时,用户的电子邮件和令牌将添加到每个请求的标题中

当用户更改其电子邮件地址时,我可以更新会话的电子邮件,但这不会传播到标题


触发会话电子邮件和标题电子邮件更新的最佳方式是什么?

以下是我最后所做的:

app/sessions/custom.js

import Ember from 'ember';
import DS from 'ember-data';
import Session from 'simple-auth/session';

export default Session.extend({
  currentUser: function() {
    var userId = this.get('secure.userId');

    if (!Ember.isEmpty(userId)) {
      return DS.PromiseObject.create({
        promise: this.container.lookup('store:main').find('user', userId)
      });
    }
  }.property('secure.userId'),

  // Update the session email when the user successfully changes their email.
  updateEmail: Ember.observer('currentUser.email', function() {
    var currentUserEmail = this.get('currentUser.email'),
        sessionEmail = this.get('secure.email');

    if(currentUserEmail && !this.get('currentUser.isDirty') && sessionEmail !== currentUserEmail) {
      this.set('secure.email', currentUserEmail);
      this.set('email', currentUserEmail);
    }
  }),
});
当您设置“secure.email”时,会话上的updateStore似乎不会被调用,但当您设置“email”时,它会被调用。然而,仅仅设置“email”是不够的,因为updateStore使用“secure.email”来持久化数据(email和令牌)