错误没有使用Simple Auth Ember JS处理动作'sessionInvalidationSucceeded'

时间:2015-04-05 20:53:45

标签: javascript ember.js ember-simple-auth

所以我在过去的一周里通过我的余烬设立了一名auth经理,并最终让它发挥作用。但是,当用户无效时,我仍然会收到错误。

没有处理动作'sessionInvalidationSucceeded'

无法弄清楚处理错误的最佳方法是什么?

import Ember from 'ember';
import DS from 'ember-data';

export default Ember.Object.extend({
 authenticate: function(controller, user) {
  var app = this.container.lookup('controller:application');
  var session = app.get('session').authenticate('simple-auth-authenticator:oauth2-password-grant', user);
  session.then(function() {
    console.log('Session Started');
    controller.transitionToRoute('brands');
  });
 },
 endSession: function() {
  var app = this.container.lookup('controller:application');
  var session = app.get('session').invalidate();
  session.then(function() {
   app.store = DS.Store.create();
   console.log('Session Ended');
   app.transitionToRoute('index');
   app.store.destroy();
  });
 }
});


import Ember from 'ember';

export default Ember.Controller.extend({
 actions: {
   sessionEnded: function() {
    this.authManagerService.endSession();   
   }
 },
 currentUser: function() {
  return this.store.find('user', this.session.get('user_id');
 }.property('@each.user')
});

1 个答案:

答案 0 :(得分:0)

您需要在要验证的路线上包含Simple Auth Route mixin

import ApplicationRouteMixin from 'simple-auth/mixins/application-route-mixin';

或处理初始化程序中的操作

Ember.Application.initializer({
  name:       'authentication',
  after:      'simple-auth',
  initialize: function(container, application) {
    var applicationRoute = container.lookup('route:application');
    var session          = container.lookup('simple-auth-session:main');
    // handle the session events
    session.on('sessionInvalidationSucceeded', function() {
      applicationRoute.transitionTo('index');
    });
 }
});

看看api,它真的很有帮助 http://ember-simple-auth.com/ember-simple-auth-api-docs.html#SimpleAuth-ApplicationRouteMixin-sessionInvalidationSucceeded