在 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 会话存储并配置 sessionExpirationTime
的 null
,以便 cookie 是在浏览器时自动删除的会话 cookie已关闭。
我是 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 会话存储并配置 sessionExpirationTime
的 null
,以便 cookie 是在浏览器时自动删除的会话 cookie已关闭。