有时我希望能够让用户注销,但留在他们已经在的页面上。
我使用invalidateSession将用户注销,但这会重新加载应用程序并将其带到我的应用程序的根URL(登录页面)。在某些情况下,这不是我想要的行为,而是我希望让用户留在他们所依赖的页面上,但显示"已退出"该页面的版本。
有没有办法让用户退出并且a)没有重新加载应用程序,或b)指定在注销后应该将哪些页面重定向到?
我已经尝试过渡到另一条路线,但在会话无效后似乎无法做到这一点(它不是一个承诺)。
答案 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的默认行为基本上是窗口重新加载,您可以通过覆盖方法来覆盖它