Search code examples
pythonsessionwebflasklimit

Flask limiting user sessions by time


I have rather unusual task, so I would like to ask for a piece of advice from experts :)

I need to build small Flask-based web which will have build-in video player. Users will have to log-in to access videos. The problem is that I need to limit user by the amount of time they can spend using the service.

Could someone please recommend a possible way to make it work or help me to find a place to get started?

What I am thinking of... what if i create user's profile variable like "credits_minutes", and i could find a way to decrease credits_minutes every minute by one?


Solution

  • The sessions are based on requests from my understanding what you are trying to do is to actually get the amount of time spent on the site? You'll need to do some kind of keep alive from the client.

    Such as web sockets, repetitive JavaScript calls or something else to know that they are on the actual site and base you logic on that.

    A simple solution would be to write something with jquery that polls an endpoint of you choice where you could do something time based for each poll. Such as saving the oldest call and comparing it to each new that is arriving. and when X minutes has elapsed, redirect the user.