The following JavaScript code will check if the current user has been active over the past n hours. If the user is inactive for n hours, the mobile application will sign out the logged-in user.
Please add below JavaScript code on your Formyoula form deployed to your users.
( function() {
// Check if JavaScript already loaded
if ( !window[ 'formyoula_js_set_interval_check_if_user_is_active_in_last_n_hours' ] ) {
// Set the number of hours of inactivity before logout
var hours_of_inactivity_before_logout = 8;
// Set current time
window[ 'formyoula_js_last_activity_time_for_user_logout_check' ] = new Date();
// Add event listeners to check for inactivity
document.addEventListener( 'mousedown', set_last_activity_time, false );
document.addEventListener( 'keydown', set_last_activity_time, false );
// Register event for touch devices
document.addEventListener( 'touchend', set_last_activity_time, false );
document.addEventListener( 'touchmove', set_last_activity_time, false );
// Set time when last activity occured
function set_last_activity_time() {
// Set current time
window[ 'formyoula_js_last_activity_time_for_user_logout_check' ] = new Date();
}
// Start Interval
window[ 'formyoula_js_set_interval_check_if_user_is_active_in_last_n_hours' ] = setInterval( function() {
// Check if Formyoula user has a Salesforce Id
if ( window.formyoula.user ) {
// Run main check function
check_if_user_is_active_in_last_n_hours();
}
}, 1000 * 60 * 30 ); // END Interval
// Function for checking active user
function check_if_user_is_active_in_last_n_hours() {
// Check if error has the inactive description
if ( moment().diff( moment( window[ 'formyoula_js_last_activity_time_for_user_logout_check' ] ), 'hours' ) > hours_of_inactivity_before_logout ) {
// Trigger signout
window.formyoula.event_trigger( 'sync:clear_all', {} );
window.formyoula.event_trigger( 'login:main', {} );
// Remove user details
delete window.formyoula.user;
}
}
}
} )();
For any questions, please contact us - [email protected] or the Formyoula in-app chat 🙂