注销后将用户重定向到同一页面
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 重新加载,您可以通过覆盖方法来覆盖它
有时我希望能够让用户注销,但留在他们已经在的页面上。
我正在使用 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 重新加载,您可以通过覆盖方法来覆盖它