angular - 关闭最后一个选项卡后重定向到注销链接

标签 angular typescript logout

根据要求,当他关闭浏览器上的最后一个选项卡时,我必须注销用户。

    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);
        }
    }
行为是不稳定的。有时它会减少计数器,有时不会。此外,我必须在这里处理刷新、多个选项卡关闭和浏览器关闭逻辑。
我该如何实现?

最佳答案

保持标签总数:https://jsbin.com/mipanuro/1/edit?html,js,output (引用这个)
方法 1(将进行 POST 调用):
使用 BeaconAPI ( navigator.sendBeacon() )。这将在后台发生。
方法 2(也适用于 GET 调用):
使用 fetchkeep-alive方法三(Websocket):
每隔几分钟左右 Ping 一下您的后端。如果没有 ping,后端可能会使您的 session 无效。

关于angular - 关闭最后一个选项卡后重定向到注销链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66634196/

相关文章:

javascript - 有没有办法阻止 Angular 2 RC5 中的 DOM 删除?

angular - 等待解析器中的状态 (ngrx)

Angular2 扩展服务

cordova - 如何在 Angular 2 移动应用程序中使用 Cordova 插件

php - 交响乐 4 : Logout active user by admin

javascript - Angular 2 : Component doesn't render

javascript - 在 TypeScript 中使用点表示法和函数组件

npm - Windows 上 npm typescript@1.4.1 的编译问题

asp.net - 在asp.net中禁用自动注销功能

java - 注销后无法清除访问 token