fix: oauth client registration

This commit is contained in:
Timothy Jaeryang Baek 2025-10-01 15:15:24 -05:00
parent b1c196ed83
commit e493562735
2 changed files with 19 additions and 11 deletions

View file

@ -605,8 +605,8 @@ def load_oauth_providers():
OAUTH_PROVIDERS.clear() OAUTH_PROVIDERS.clear()
if GOOGLE_CLIENT_ID.value and GOOGLE_CLIENT_SECRET.value: if GOOGLE_CLIENT_ID.value and GOOGLE_CLIENT_SECRET.value:
def google_oauth_register(client: OAuth): def google_oauth_register(oauth: OAuth):
client.register( return oauth.register(
name="google", name="google",
client_id=GOOGLE_CLIENT_ID.value, client_id=GOOGLE_CLIENT_ID.value,
client_secret=GOOGLE_CLIENT_SECRET.value, client_secret=GOOGLE_CLIENT_SECRET.value,
@ -633,8 +633,8 @@ def load_oauth_providers():
and MICROSOFT_CLIENT_TENANT_ID.value and MICROSOFT_CLIENT_TENANT_ID.value
): ):
def microsoft_oauth_register(client: OAuth): def microsoft_oauth_register(oauth: OAuth):
client.register( return oauth.register(
name="microsoft", name="microsoft",
client_id=MICROSOFT_CLIENT_ID.value, client_id=MICROSOFT_CLIENT_ID.value,
client_secret=MICROSOFT_CLIENT_SECRET.value, client_secret=MICROSOFT_CLIENT_SECRET.value,
@ -658,8 +658,8 @@ def load_oauth_providers():
if GITHUB_CLIENT_ID.value and GITHUB_CLIENT_SECRET.value: if GITHUB_CLIENT_ID.value and GITHUB_CLIENT_SECRET.value:
def github_oauth_register(client: OAuth): def github_oauth_register(oauth: OAuth):
client.register( return oauth.register(
name="github", name="github",
client_id=GITHUB_CLIENT_ID.value, client_id=GITHUB_CLIENT_ID.value,
client_secret=GITHUB_CLIENT_SECRET.value, client_secret=GITHUB_CLIENT_SECRET.value,
@ -690,7 +690,7 @@ def load_oauth_providers():
and OPENID_PROVIDER_URL.value and OPENID_PROVIDER_URL.value
): ):
def oidc_oauth_register(client: OAuth): def oidc_oauth_register(oauth: OAuth):
client_kwargs = { client_kwargs = {
"scope": OAUTH_SCOPES.value, "scope": OAUTH_SCOPES.value,
**( **(
@ -716,7 +716,7 @@ def load_oauth_providers():
% ("S256", OAUTH_CODE_CHALLENGE_METHOD.value) % ("S256", OAUTH_CODE_CHALLENGE_METHOD.value)
) )
client.register( return oauth.register(
name="oidc", name="oidc",
client_id=OAUTH_CLIENT_ID.value, client_id=OAUTH_CLIENT_ID.value,
client_secret=OAUTH_CLIENT_SECRET.value, client_secret=OAUTH_CLIENT_SECRET.value,
@ -733,8 +733,8 @@ def load_oauth_providers():
if FEISHU_CLIENT_ID.value and FEISHU_CLIENT_SECRET.value: if FEISHU_CLIENT_ID.value and FEISHU_CLIENT_SECRET.value:
def feishu_oauth_register(client: OAuth): def feishu_oauth_register(oauth: OAuth):
client.register( return oauth.register(
name="feishu", name="feishu",
client_id=FEISHU_CLIENT_ID.value, client_id=FEISHU_CLIENT_ID.value,
client_secret=FEISHU_CLIENT_SECRET.value, client_secret=FEISHU_CLIENT_SECRET.value,

View file

@ -615,8 +615,16 @@ class OAuthManager:
self.app = app self.app = app
self._clients = {} self._clients = {}
for _, provider_config in OAUTH_PROVIDERS.items(): for _, provider_config in OAUTH_PROVIDERS.items():
provider_config["register"](self.oauth) if "register" not in provider_config:
log.error(
f"OAuth provider {provider_config['name']} missing register function"
)
continue
client = provider_config["register"](self.oauth)
self._clients[provider_config["name"]] = client
def get_client(self, provider_name): def get_client(self, provider_name):
if provider_name not in self._clients: if provider_name not in self._clients: