【问题标题】:How do I remove cookies when the browser is closed? using angular2-cookies浏览器关闭时如何删除cookies?使用 angular2-cookies
【发布时间】:2023-04-02 06:48:01
【问题描述】:

当我关闭浏览器时,我想删除 cookie。我怎样才能做到这一点? 我使用 th bibliotek angular2-cookie。

【问题讨论】:

    标签: angular typescript cookies session-cookies


    【解决方案1】:

    onbeforeunload 事件将允许您在用户离开页面之前运行一些代码。将其与this answer 中的代码结合使用,您可以在用户尝试离开页面时清除所有 cookie。

    window.onbeforeunload = function (e) {
      deleteAllCookies();
    }
    
    function deleteAllCookies() {
        var cookies = document.cookie.split(";");
    
        for (var i = 0; i < cookies.length; i++) {
            var cookie = cookies[i];
            var eqPos = cookie.indexOf("=");
            var name = eqPos > -1 ? cookie.substr(0, eqPos) : cookie;
            document.cookie = name + "=;expires=Thu, 01 Jan 1970 00:00:00 GMT";
        }
    }
    

    关于 Angular 2,如果这是一次性的事情,那么将它作为底部 sn-p 放在您的 index.html 页面中是完全可以的,因为它与您的 Angular 2 应用程序没有真正的关系。如果你想以 Angular 2 的方式来做,你应该可以把它放在你的 AppComponent 中。

    @HostListener('window:onbeforeunload', ['$event'])
    onBeforeUnload() {
        this.deleteAllCookies();
    }
    
    deleteAllCookies() {
        var cookies = document.cookie.split(";");
    
        for (var i = 0; i < cookies.length; i++) {
            var cookie = cookies[i];
            var eqPos = cookie.indexOf("=");
            var name = eqPos > -1 ? cookie.substr(0, eqPos) : cookie;
            document.cookie = name + "=;expires=Thu, 01 Jan 1970 00:00:00 GMT";
        }
    }
    

    【讨论】:

    • 谢谢,还有一些事情。如何建立唯一的安全连接?
    • 什么意思?这听起来与这个问题无关,也许你应该尝试提出一个新问题,或者搜索 SO 来寻找答案。
    • @rachedbch,另外,在 Stack Overflow 上接受一个答案,说它是正确的,以帮助将来发现这个问题的其他人,这是一种很好的形式。
    • 亚当,谢谢你的回答。这就是我搜索的内容。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-06-18
    • 1970-01-01
    • 2017-09-16
    • 2014-01-26
    • 2017-07-04
    • 1970-01-01
    • 2017-02-14
    相关资源
    最近更新 更多