[SOLVED] Session - Keeping track if user is logged in

  • Hi,

    I have connected my Qt app with a mySQL database.
    I use a login form (custom QDialog) that check if the username and password are correct, if so, the main Window starts.

    This all work correctly, but I want to make sure only one user can connect at the same time with a corresponding user/password.

    I thought of adding a field in my DB called "isLoggedIn" and put this flag to 1 when the user login. The problem I have is to set this flag to 0 when the application is close. There is too many way that the application can clause (crash, user power off computer, ..) so the flag stays at 1 and the user can't login afterward

    Is there another way to do this that i'm missing? I could store a random ID field in a the mySQL user table, but the same problem happen, when did the user stop using the application? So I can let a new one update the id.

    Thanks in advance! :)

  • haa I got it I think

    When a new user login, update the sessionId.
    The one that was already loged will get kicked out, I have to verify sessionID all the time though

    Should think before posting :)

  • Out of curiosity, how did you connect the Qt app to the SQL database?

  • At start I used QSqlDatabase and connect directly my client to the database. But I soon learned that this approach was not good since all my client will need a direct access to the DB (not secure...)

    So I made a web service using phprestsql, really easy to set up:
    Now when I need to make Select or an Update, I use the QNetworkRequest class and create appropriate "get, put, post and delete" request. So far only using basic http authentification, will need to get a ssl certificate so I can use https. Each request pass the username/password of the user to see if he has access to do what he's asking.

Log in to reply

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.