'success', 'data' => []]; $sProvider = utils::ReadParam('provider', '', false, 'raw'); $sClientId = utils::ReadParam('client_id', '', false, 'raw'); $sClientSecret = utils::ReadParam('client_secret', '', false, 'raw'); $sScope = utils::ReadParam('scope', '', false, 'raw'); $sAdditional = utils::ReadParam('additional', '', false, 'raw'); $aAdditional = []; parse_str($sAdditional, $aAdditional); $sAuthorizationUrl = OAuthClientProviderFactory::getVendorProviderForAccessUrl($sProvider, $sClientId, $sClientSecret, $sScope, $aAdditional); $aResult['data']['authorization_url'] = $sAuthorizationUrl; $this->DisplayJSONPage($aResult); } public function OperationGetDisplayAuthenticationResults() { $aResult = ['status' => 'success', 'data' => []]; $sProvider = utils::ReadParam('provider', '', false, 'raw'); $sRedirectUrl = utils::ReadParam('redirect_url', '', false, 'raw'); $sClientId = utils::ReadParam('client_id', '', false, 'raw'); $sClientSecret = utils::ReadParam('client_secret', '', false, 'raw'); $sScope = utils::ReadParam('scope', '', false, 'raw'); $sAdditional = utils::ReadParam('additional', '', false, 'raw'); $sRedirectUrlQuery = parse_url($sRedirectUrl)['query']; $aOAuthResultDisplayClasses[] = '\Combodo\iTop\Core\Authentication\Client\OAuth\OAuthClientResultDisplayConf'; if (class_exists('Combodo\iTop\Extension\Service\OAuthClientResultDisplayMailbox')) { $aOAuthResultDisplayClasses[] = 'Combodo\iTop\Extension\Service\OAuthClientResultDisplayMailbox'; } $aAdditional = []; parse_str($sAdditional, $aAdditional); // $sProviderClass = "\Combodo\iTop\Core\Authentication\Client\OAuth\OAuthClientProvider".$sProvider; // $sRedirectUrl = OAuthClientProviderAbstract::GetRedirectUri(); $aQuery = []; parse_str($sRedirectUrlQuery, $aQuery); $sCode = $aQuery['code']; $oProvider = OAuthClientProviderFactory::getVendorProvider($sProvider, $sClientId, $sClientSecret, $sScope, $aAdditional); $oAccessToken = OAuthClientProviderFactory::getAccessTokenFromCode($oProvider, $sCode); foreach ($aOAuthResultDisplayClasses as $sOAuthClass) { $aResult['data'][] = $sOAuthClass::GetResultDisplayScript($sClientId, $sClientSecret, $sProvider, $oAccessToken); } $this->DisplayJSONPage($aResult); } }