Instead of running the cron job, I would just do the test every time they access the page. At first this might seem wasteful, but it really isn't since you already have to get the session id for each access. It's just a matter of comparing the session id and the timestamp each time. Only if the session id matches and the timestamp is within bounds do you complete the authentication.
You can really replace the cron job with a single line of perl code in your existing script.
-caedes