ユーザーがログアウト ボタンをクリックしたときの Web ページで、MongoDB に保存されているユーザー セッションをクリアする JavaScript 関数があります。それは正常に動作します。
また、ユーザーがブラウザを閉じたときにユーザー セッションをクリアしたいと考えています。私が直面している問題は次のとおりです。ユーザーが更新アイコンをクリックすると、ログアウト機能が呼び出されます。ブラウザが閉じられたときにのみこの関数が呼び出されるようにします。
ページの更新時にこの関数が呼び出されないようにすることはできますか?
ここでの私のロジックは、ブラウザーが閉じられたときにセッションをクリーンアップすることです。MongoDB 上のセッションを削除しています。セッションを管理するより良い方法はありますか?
var isRefresh = false;
$(window).keydown(function (event) {
if (event.keyCode == 116) { // User presses F5 to refresh
refresh = true;
}
});
// Calls the logout function when you close the browser thus cleans the session data.
var windowsCloseEventListener = window.attachEvent || window.addEventListener;
var chkForBrowserCloseEvents = window.attachEvent ? 'onbeforeunload' : 'beforeunload'; /// make IE7, IE8 compitable
windowsCloseEventListener(chkForBrowserCloseEvents, function (e) { // For >=IE7, Chrome, Firefox
if (!isRefresh) {
$scope.logout();
}
});