How to create a time-out for a user?

For my project I want to make a time-out function. Which logs out the user after 15 minutes without user activity in the portal. Is that possible? And if so, how does the microflow looks like?
2 answers

The default behavior in the runtime is that as long as the AJAX client is active, keep-a-live requests are send to the server. So, as long as the AJAX client is active the user keeps active. If the AJAX client is closed, no keep-a-live's are send and the session of the user will time out after 10 minutes.

I suspect that you want to neglect the keep-a-live's and time out a user after 10 minutes of real inactivity?

In the simple case you can just retrieve all session objects (System.Session) with a scheduled event and check the LastActive attribute. Once the LastActive time is more than 15 minutes ago you can execute a Java action calling Core.logout(Session). However, the LastActive attribute of a Session will be updated everytime a keep-a-live is send.

You can build all kind of ActionListeners to detect and set your own last active time, but I guess that is to much effort for the thing you want? Why do you want to use your own timeout functionality?


Hi Johan, thanks for your answer. The project is configured for concurrent users. So I don't want someone to be logged in for a few hours if he/she is not using the application