• Модуль: socialservices
  • Путь к файлу: ~/bitrix/modules/socialservices/classes/general/openid.php
  • Класс: CSocServOpenID
  • Вызов: CSocServOpenID::Authorize
public function Authorize($identity=false, $var=false)
{
	if($var === false)
		$var = 'OPENID_IDENTITY_OPENID';

	$step = COpenIDClient::GetOpenIDAuthStep($var);
	if($step > 0)
	{
		$obOpenID = new COpenIDClient();

		if($step == 2)
		{
			return $obOpenID->Authorize();
		}
		elseif($step == 1)
		{
			if($identity === false || is_array($identity))
			{
				$identity = $_REQUEST[$var];
			}

			$return_to = CSocServUtil::GetCurUrl("auth_service_id=".urlencode($_REQUEST["auth_service_id"])."&check_key=".CSocServAuthManager::getUniqueKey(), array("SEF_APPLICATION_CUR_PAGE_URL", "auth_service_error", "auth_service_id", "login"));

			if($url = $obOpenID->GetRedirectUrl($identity, $return_to))
				LocalRedirect($url, true);
			else
				LocalRedirect(CSocServUtil::GetCurUrl("auth_service_id=".urlencode($_REQUEST["auth_service_id"])."&auth_service_error=1"));
				return false;
		}
	}
	return false;
}