Skip to content

Instantly share code, notes, and snippets.

@bjpeterdelacruz
Last active May 23, 2018 07:17
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save bjpeterdelacruz/79a907f8a59eb0450bb35bec4f373813 to your computer and use it in GitHub Desktop.
Save bjpeterdelacruz/79a907f8a59eb0450bb35bec4f373813 to your computer and use it in GitHub Desktop.
How to warn user that their session will timeout soon and how to log them out once it expires
var logoutUrl = "https://test-swhv.ehawaii.gov/swhv-wikiflow/logout.php";
var refreshUrl = "https://test-swhv.ehawaii.gov/swhv-wikiflow/refresh.html";
function displayTimeOutWarningMessage() {
var thirtyMinutes = 1000 * 60 * 30;
var fifteenMinutes = thirtyMinutes / 2;
var lastActivity = new Date().getTime();
var checkTimeOut = function() {
var currentTime = new Date().getTime();
if (currentTime >= lastActivity + fifteenMinutes) {
var time = moment().format("MM/DD/YYYY hh:mm A");
var warningMessage = "[" + time + "] You have been inactive for more than 15 minutes, and your session will time out in less than 15 minutes. ";
warningMessage += "Click OK to continue using this web application, or click Cancel to logout.";
if (confirm(warningMessage)) {
if (new Date().getTime() >= lastActivity + thirtyMinutes) {
alert("Your session has expired. You will now be logged out.");
window.location.href = logoutUrl;
} else {
$.ajax({
url: refreshUrl,
type: "GET"
});
lastActivity = new Date().getTime();
window.setTimeout(checkTimeOut, 1000);
}
} else {
window.location.href = logoutUrl;
}
} else {
window.setTimeout(checkTimeOut, 1000); // check once per second
}
}
checkTimeOut();
}
$(document).ready(function() {
displayTimeOutWarningMessage();
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment