Session Ember Simple Auth-Authorization未执行会话无效或转换失败

Session Ember Simple Auth-Authorization未执行会话无效或转换失败,session,ember.js,authorization,ember-simple-auth,Session,Ember.js,Authorization,Ember Simple Auth,问题:未经授权的请求不会使会话和到根url的转换无效。默认方法不起作用,因此我将覆盖它 我的海关授权人 var CustomAuthorizer = Base.extend({ authorize: function(jqXHR, requestOptions) { if (this.get('session.isAuthenticated') && !Ember.isEmpty(this.get('session.token'))) { jqXHR.s

问题:未经授权的请求不会使会话和到根url的转换无效。默认方法不起作用,因此我将覆盖它

我的海关授权人

var CustomAuthorizer = Base.extend({
 authorize: function(jqXHR, requestOptions) {
    if (this.get('session.isAuthenticated') && !Ember.isEmpty(this.get('session.token'))) {
        jqXHR.setRequestHeader('ApiKey', this.get('session.token'));
    }
 }
});
授权失败挂钩

authorizationFailed: function(session){
  console.log('authorizationFailed'); //displays in console
  this.get('session').invalidate('authenticator:custom', {}); //doesn't invalidate
  console.log(this.get('session')); //still return authenticated session
  this.transitionTo('index'); //doesn't transition
}
我知道问题是因为无效化是异步的,所以无效化的承诺不会及时返回到console.log来抛出无效会话。还有其他方法吗?

invalidate返回一个承诺,您应该等待该承诺在转换之前被完全归档

this.get('session').invalidate('authenticator:custom', {}).then(function() {
  this.transitionTo('index');
});

我也试过了,但没用。我在之后注销了会话,但它仍然返回经过身份验证的会话SessionInvalidate,根据。尝试了此操作。获取“会话”。invalidate;但结果还是一样。