def logout(cls): if not cls.__current_user.is_authorized(): return session = cls.__current_user.session if len(session) != 0: session["user"]["id"] = None redis.set(cls.__current_user.sid, session)
def login(cls, login, password): if cls.__current_user.is_authorized(): return True user = User.get_by_login(login) hash_alg = hashlib.new(current_app.config.get("HASH_ALGORITHM", "sha1")) hash_alg.update(password.encode()) if user.password == hash_alg.hexdigest(): sid = cls.__current_user.sid if sid is not None: session = { "create_datetime": datetime.now().isoformat(), "touch_datetime": datetime.now().isoformat(), "user": { "id": user.id } } redis.set(sid, pickle.dumps(session)) return True return False else: return False
def _touch(sid, session): session['touch_datetime'] = datetime.now().isoformat() redis.set(sid, pickle.dumps(session))