一旦在angular4中刷新页面后如何使会话无效

时间:2018-06-21 03:08:24

标签: angular

单击浏览器刷新按钮后,我想使会话无效并重定向到登录页面。我尝试使用@HostListener,并且该页面正在重定向到登录名,但再次进入同一页面。

@HostListener('window:beforeunload', ['$event']) unloadHandler(event: Event) {
    // console.log("Processing beforeunload...");
    // event.returnValue = false;
     this.router.navigate(['/']);
    return false;
} 

3 个答案:

答案 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中进行操作。