单击浏览器刷新按钮后,我想使会话无效并重定向到登录页面。我尝试使用@HostListener,并且该页面正在重定向到登录名,但再次进入同一页面。
@HostListener('window:beforeunload', ['$event']) unloadHandler(event: Event) {
// console.log("Processing beforeunload...");
// event.returnValue = false;
this.router.navigate(['/']);
return false;
}
答案 0 :(得分:1)
@Vishnu试试这个...
清除用于 browser storage's
的 Authentication
,如果您在应用程序内部使用了任何全局变量进行绑定,则重定向至登录页面。
localStorage.clear();
sessionStorage.clear();
this.router.navigate(['/login'])
我希望这会起作用...
答案 1 :(得分:0)
我的建议是保留一个isrefresh变量来加载页面
this.router.navigate(['/dashboard', { isrefresh:false }]);
在仪表板的加载事件中,检查isrefresh是否为true。如果为true,请重定向到登录页面。
this.route.paramMap.pipe( switchMap((params: ParamMap) => {
this.isrefresh = params.get('isrefresh');
})
);
If (isrefresh){
//Redirect to login page
}
答案 2 :(得分:0)
以角度刷新页面意味着您的整个角度应用将重新启动。当您的应用正在重新启动并且您想要使会话无效时,请在应用本身启动时清除所有会话或localvariables,最好的方法是在app.component.ts的ngOnInit中进行操作。