From fad29ee3cdaecf20d61ef67bf5b11cec7779cb6d Mon Sep 17 00:00:00 2001 From: Torsten Dittmann Date: Thu, 4 Dec 2025 20:37:16 +0400 Subject: [PATCH] Use configured OAuth2 provider class from config --- app/controllers/api/account.php | 14 +++++++++----- app/controllers/api/avatars.php | 4 ++-- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/app/controllers/api/account.php b/app/controllers/api/account.php index 555b9e578e..6ffbe74046 100644 --- a/app/controllers/api/account.php +++ b/app/controllers/api/account.php @@ -888,7 +888,11 @@ App::patch('/v1/account/sessions/:sessionId') // Refresh OAuth access token $provider = $session->getAttribute('provider', ''); $refreshToken = $session->getAttribute('providerRefreshToken', ''); - $className = 'Appwrite\\Auth\\OAuth2\\' . \ucfirst($provider); + $oAuthProviders = Config::getParam('oAuthProviders'); + $className = $oAuthProviders[$provider]['class']; + if (!\class_exists($className)) { + throw new Exception(Exception::PROJECT_PROVIDER_UNSUPPORTED); + } if (!empty($provider) && \class_exists($className)) { $appId = $project->getAttribute('oAuthProviders', [])[$provider . 'Appid'] ?? ''; @@ -1464,8 +1468,8 @@ App::get('/v1/account/sessions/oauth2/:provider/redirect') $appSecret = $project->getAttribute('oAuthProviders', [])[$provider . 'Secret'] ?? '{}'; $providerEnabled = $project->getAttribute('oAuthProviders', [])[$provider . 'Enabled'] ?? false; - $className = 'Appwrite\\Auth\\OAuth2\\' . \ucfirst($provider); - + $oAuthProviders = Config::getParam('oAuthProviders'); + $className = $oAuthProviders[$provider]['class']; if (!\class_exists($className)) { throw new Exception(Exception::PROJECT_PROVIDER_UNSUPPORTED); } @@ -1976,8 +1980,8 @@ App::get('/v1/account/tokens/oauth2/:provider') throw new Exception(Exception::PROJECT_PROVIDER_DISABLED, 'This provider is disabled. Please configure the provider app ID and app secret key from your ' . APP_NAME . ' console to continue.'); } - $className = 'Appwrite\\Auth\\OAuth2\\' . \ucfirst($provider); - + $oAuthProviders = Config::getParam('oAuthProviders'); + $className = $oAuthProviders[$provider]['class']; if (!\class_exists($className)) { throw new Exception(Exception::PROJECT_PROVIDER_UNSUPPORTED); } diff --git a/app/controllers/api/avatars.php b/app/controllers/api/avatars.php index d0cb3e554c..b54682f5eb 100644 --- a/app/controllers/api/avatars.php +++ b/app/controllers/api/avatars.php @@ -96,8 +96,8 @@ $getUserGitHub = function (string $userId, Document $project, Database $dbForPro $appId = $project->getAttribute('oAuthProviders', [])[$provider . 'Appid'] ?? ''; $appSecret = $project->getAttribute('oAuthProviders', [])[$provider . 'Secret'] ?? '{}'; - $className = 'Appwrite\\Auth\\OAuth2\\' . \ucfirst($provider); - + $oAuthProviders = Config::getParam('oAuthProviders'); + $className = $oAuthProviders[$provider]['class']; if (!\class_exists($className)) { throw new Exception(Exception::PROJECT_PROVIDER_UNSUPPORTED); }