from server.auth.auth import AuthTypeBase, AuthTypeFactory from flask import session from uuid import uuid4 class AuthTypeSession(AuthTypeBase): """Session based authentication. The user is always logged. The user id is a random number associated with the session. This is a good choice for desktop servers.""" # key in the session token for userid CXGUID = "cxguid" def __init__(self, app_config): super().__init__() def is_valid_authentication_type(self): return True def complete_setup(self, app): pass def is_user_authenticated(self): # always authenticated return True def get_user_id(self): if self.CXGUID not in session: session[self.CXGUID] = uuid4().hex session.permanent = True return session[self.CXGUID] def get_user_name(self): return "anonymous" def get_user_email(self): return None AuthTypeFactory.register("session", AuthTypeSession)