באפליקציות אינטרנט שמצריכות כניסה – יש עניין שבצד השרת – מנוהל לרוב Session
ולא נרצה שהמשתמש ישאיר את התוכנה פתוחה ואולי משתמש אחר יגיע למחשב וישתמש בתוכנה בשמו של הראשון, ללא ידיעתו.
כדי לתת מענה לכך – אז בפריימוורקים של צד שרת , בדרך כלל אפשר לזהות אם פג תוקף ה- Session ואז לעשות redirect למשתמש.
אבל במקרה של שימוש ב- Ajax או אפליקציה שבנויה עם פרייוורק JS, צריך פתרון גם ברמת צד הלקוח.
יש הרבה פתרונות JS
אני מצאתי שהתוסף הבא ל- Jquery הכי נוח.
קוד להמחשה ( במצב פרודקשיין, אולי כדאי לעשות קריאת אגקס לשרת, לבדוק אם ה Session בתוקף, אבל הקוד יעבוד היטב גם בלי זה )
הערה : השורה הראשונה מושכת את הסקריפט, אני עובד עם Laravel בצד שרת, ולכן הפקודה asset – וסימני הסוגרים המסולסלים ( כנ"ל בשורה האחרונה ) .
<!-- jquery inactivity -->
<script src="{{ asset('js/jquery-inactivity/jquery.inactivity.min.js') }}">
</script>
<script>
// https://github.com/afklondon/jquery.inactivity
$(document).inactivity( {
interval: 1800000, // the timeout until the inactivity event fire [default: 3000]
mouse: true, // listen for mouse inactivity [default: true]
keyboard: true, // listen for keyboard inactivity [default: true]
touch: true, // listen for touch inactivity [default: true]
customEvents: "", // listen for custom events [default: ""]
triggerAll: false , // if set to false only the first "activity" event will be fired [default: false]
});
$(document).on("inactivity", function(){
// function that fires on inactivity
console.log('loged out beacuse of inactivity');
window.location = "{{ route('logout') }}";
});
</script>

