How to create a time-out for a user?

4
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?
asked
2 answers
4

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?

answered
1

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

answered