| # publisher/oauth/sessions.py | |
| import secrets | |
| import time | |
| _sessions = {} | |
| def create_session(user_id): | |
| state = secrets.token_urlsafe(32) | |
| _sessions[state] = { | |
| "user_id": user_id, | |
| "created": time.time() | |
| } | |
| return state | |
| def get_user(state): | |
| session = _sessions.get(state) | |
| if not session: | |
| return None | |
| return session["user_id"] | |
| def cleanup(expiry=600): | |
| now = time.time() | |
| for k in list(_sessions.keys()): | |
| if now - _sessions[k]["created"] > expiry: | |
| del _sessions[k] |