If you don't want the user to logout you could create a method that just returns a boolean true value.
Then create a small js script that makes an AJAX call to this function every 30 minutes or so which will keep the users session alive.
So add this to one of your Controllers (example Page.php - although you might want to add it to your password protected page)
Remember to set private static $allowed_actions = array ('ping');
/**
* Keep the session alive for the user.
*
* @return int
*/
public function ping() {
return 1;
}
Then in your JS - I am using jQuery
/*************
* JS to keep the session alive
*/
setInterval(function() {
// Ping every 3 mins.
$.ajax({url: "/<your page name>/ping"});
}, 180*1000); // Run this every 3 minutes
Cheers,
Colin