• Модуль: socialservices
  • Путь к файлу: ~/bitrix/modules/socialservices/classes/general/liveidoauth.php
  • Класс: CSocServLiveIDOAuth
  • Вызов: CSocServLiveIDOAuth::getUrl
public function getUrl($location = 'opener', $addScope = null, $arParams = array())
{
	global $APPLICATION;

	if ($this->userId == null)
	{
		$this->getEntityOAuth()->setRefreshToken("skip");
	}
	if ($addScope !== null)
	{
		$this->getEntityOAuth()->addScope($addScope);
	}

	if (IsModuleInstalled('bitrix24') && defined('BX24_HOST_NAME'))
	{
		$redirect_uri = self::CONTROLLER_URL."/redirect.php";
		$state = CHTTP::URN2URI("/bitrix/tools/oauth/liveid.php")."?state=";
		$backurl = urlencode($GLOBALS["APPLICATION"]->GetCurPageParam('check_key='.CSocServAuthManager::getUniqueKey(), array("logout", "auth_service_error", "auth_service_id", "backurl"))).(isset($arParams['BACKURL']) ? '&redirect_url='.urlencode($arParams['BACKURL']) : '').'&mode='.$location;
		$state .= urlencode(urlencode("backurl=".$backurl));
	}
	else
	{
		$backurl = $APPLICATION->GetCurPageParam(
			'check_key='.CSocServAuthManager::getUniqueKey(),
			array("logout", "auth_service_error", "auth_service_id", "backurl")
		);

		$redirect_uri = CHTTP::URN2URI("/bitrix/tools/oauth/liveid.php");
		$state = 'site_id='.SITE_ID.'&backurl='.urlencode($backurl).(isset($arParams['BACKURL']) ? '&redirect_url='.urlencode($arParams['BACKURL']) : '').'&mode='.$location;
	}

	return $this->getEntityOAuth()->GetAuthUrl($redirect_uri, $state);
}