在 ember-simple-auth 中使浏览器关闭时的会话无效?

Invalidate a session on browser close in ember-simple-auth?

我是 Ember.js and ember-simple-auth 的新手,所以我希望你能帮助我。

我在我的应用程序中使用 ember-simple-auth。我想要做的是在浏览器关闭或用户离开页面时使会话无效。只有当用户之前登录时才会发生这种情况(这就是为什么将其放在身份验证操作中的原因)。

我试过这样的事情:

actions: {
    authenticate: function() {
        var _this = this;
        this._super().then(null, function(message) {
            _this.set('errorMessage', message);
        });

         $(window).on('beforeunload',function() {
            _this.get("session").invalidate();
        });
    }
}

问题是关闭浏览器时不起作用。此外,当我更改 URL(离开应用程序,例如 www.google.com)时,它会转换为“/”并且不会打开所需的 URL。

所以问题是:如何在浏览器关闭时(或用户离开应用程序时)使会话无效。

谢谢。

我不确定您将如何处理用户离开应用程序的情况(您可能可以处理一些导航事件并使用 this.get("session").invalidate(); 使会话无效)。但是,要在用户关闭浏览器时使会话无效,最好的解决方案是使用 cookie 会话存储并配置 sessionExpirationTimenull,以便 cookie 是在浏览器时自动删除的会话 cookie已关闭。