注销后将用户重定向到同一页面

时间:2015-01-21 13:42:18

标签: ember.js ember-simple-auth

有时我希望能够让用户注销,但留在他们已经在的页面上。

我使用invalidateSession将用户注销,但这会重新加载应用程序并将其带到我的应用程序的根URL(登录页面)。在某些情况下,这不是我想要的行为,而是我希望让用户留在他们所依赖的页面上,但显示"已退出"该页面的版本。

有没有办法让用户退出并且a)没有重新加载应用程序,或b)指定在注销后应该将哪些页面重定向到?

我已经尝试过渡到另一条路线,但在会话无效后似乎无法做到这一点(它不是一个承诺)。

1 个答案:

答案 0 :(得分:1)

在您的应用程序路由中,您可以通过执行类似

的操作来覆盖它
import ApplicationRouteMixin from 'simple-auth/mixins/application-route-mixin';

export default Ember.Route.extend(ApplicationRouteMixin, {

actions: {
  sessionInvalidationSucceeded: function(){
   var currentRoute = this.controllerFor('application').get('currentRouteName');
   this.transitionTo(currentRoute); // or whatever route you want
  },
  sessionInvalidationFailed: function(error){
    console.log(error);
    var currentRoute = this.controllerFor('application').get('currentRouteName');
    this.transitionTo(currentRoute); // or whatever route you want
  }
}
});

sessionInvalidationSucceeded的默认行为基本上是窗口重新加载,您可以通过覆盖方法来覆盖它