Hi! I'm writing a script that involves simple authentication procedures. The user sends a password and username, the script then verifies if such user exists, then the scripts generates a unique session ID (encrypted using Crypt::CBC, Crypt::Blowfish with a checksum generated from Digest::MD5).
Now, I don't want a single user to login several times on different computers simultaneously (like if someone uses another user's account illegally and they both logged-in on different machines at the same time). The problem I have is that I only rely on the mechanism of using an expiry date/time for a session, such that if I accidentally closed my browser, the next time I will log-in, it will say that such a user is already logged-in because of an orphan session left when I didn't log-out properly.
Do you have any suggestions on how I can handle this? Like perhaps having the ability to know if the client has left or his connection has been cut? Basically I just wanted to avoid having orphan sessions. Somewhat I wanted to write an intelligent script that knows if the user is connected but just idle for several hours or if the user had been disconnected or just closed hiw window without logging-out.
I am not sure if this is the right venue for me to ask this question but I haven't found a discussion yet that can shed light to my problem.
Thanks.