【发布时间】:2021-06-12 11:53:27
【问题描述】:
根据要求,当他关闭浏览器上的最后一个标签时,我必须注销用户。
ngOnInit() {
let counter: any = this.cookieService.get('screenCounterCookie');
counter ? ++counter : (counter = '1');
this.cookieService.set('screenCounterCookie', counter);
}
@HostListener('window:beforeunload', ['$event'])
ngOnDestroy() {
let counter: any = this.cookieService.get('screenCounterCookie');
if (counter > 1) {
--counter;
this.cookieService.set('screenCounterCookie', counter);
} else {
this.cookieService.delete('screenCounterCookie');
window.open(environment.cognitoLogoutURL);
}
}
行为不稳定。有时它会减少计数器,有时则不会。另外,我必须在这里处理刷新、多个选项卡关闭和浏览器关闭逻辑。
我该如何实现它?
【问题讨论】:
-
我觉得这个答案会是很好的提示:stackoverflow.com/a/23692090/390161
-
该链接确实很有用。它帮助我保持了一个柜台。问题是
window.open()没有被触发。 -
请注意,这永远不会在所有情况下都有效
标签: angular typescript logout ngondestroy