我是Ember.js
和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。
所以问题是:当浏览器关闭时(或当用户离开应用程序时),如何使会话无效。
感谢。
答案 0 :(得分:3)
我不确定当用户离开应用程序时你将如何处理这种情况(你可以处理一些导航事件并使用this.get("session").invalidate();
使会话无效)。要在用户关闭浏览器时使会话无效,最佳解决方案是使用cookie会话存储并配置null
{{1}},以便cookie是会话cookie,当浏览器自动删除时已关闭。