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

Redirect user to the same page after logging out

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

我正在使用 invalidateSession 将用户注销,但这会重新加载应用程序并将它们带到我的应用程序的根目录 URL - 登录页面。在某些情况下,这不是我想要的行为,我反而想让用户留在他们所在的页面上,但显示该页面的 "logged out" 版本。

有没有办法让用户注销并且 a) 不重新加载应用程序,或者 b) 指定在注销后他们应该被重定向到哪个页面?

我试过转换到另一条路线,但似乎没有办法做到这一点会话无效后(这不是承诺)。

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

的操作来覆盖它
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 的默认行为基本上是 window 重新加载,您可以通过覆盖方法来覆盖它