add oauth authentication (#1681)

* add oauth authentication

Add support for OAuth2.

Change the interface to AuthTypeBase
  - better handling of config parameters
  - add a complete_setup function for additional setup steps

Added a function wrapper to enforce authentication for the
routes that require authenticaiton.

* change fsspec requirement

fsspec 0.8.0 breaks our tests
it imports a module that is does not require.
This commit is contained in:
bmccandless
2020-07-31 18:16:57 -07:00
committed by GitHub
parent bb2326525e
commit 2afa48cf11
12 changed files with 319 additions and 69 deletions
+10 -7
View File
@@ -10,27 +10,30 @@ class AuthTypeSession(AuthTypeBase):
# key in the session token for userid
CXGUID = "cxguid"
def __init__(self):
def __init__(self, app_config):
super().__init__()
def is_valid(self):
def is_valid_authentication_type(self):
return True
def set_params(self, params):
return
def complete_setup(self, app):
pass
def is_authenticated(self):
def is_user_authenticated(self):
# always authenticated
return True
def get_userid(self):
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_username(self):
def get_user_name(self):
return "anonymous"
def get_user_email(self):
return None
AuthTypeFactory.register("session", AuthTypeSession)