Код: Выделить всё
/** * Авторизация ВКонтакте * */ protected function EventVk() { /** * Читаем куку и проверяем подпись */ $sCookieName='vk_app_'.Config::Get('plugin.openid.vk.id'); if (isset($_COOKIE[$sCookieName])) { /** * Парсим параметры из куки */ $aVars=explode('&',$_COOKIE[$sCookieName]); $aParams=array( 'expire'=>null, 'mid'=>null, 'secret'=>null, 'sid'=>null, 'sig'=>null, ); foreach ($aVars as $sVar) { $aNV=explode('=',$sVar); if ($aNV and count($aNV)==2) { $aParams[$aNV[0]]=$aNV[1]; } } /** * Строим хеш для проверки валидности авторизации */ $sHash=md5("expire={$aParams['expire']}mid={$aParams['mid']}secret={$aParams['secret']}sid={$aParams['sid']}".Config::Get('plugin.openid.vk.secure_key')); /** * Успешная авторизация */ if ($sHash==$aParams['sig']) { $sOpenId='vk_'.$aParams['mid']; /** * Если уже есть связь с этим OpenID то авторизуем */ if ($oUser=$this->PluginOpenid_Openid_GetUserByOpenId($sOpenId)) { $this->User_Authorization($oUser); Router::Location($_SERVER['HTTP_REFERER']); } else { /** * Связи нет */ $aData=array(); /** * Заполняем данные (логин) */Как здесь сделать запрос пользователя регистрирующегося на сайте для получения данных?логинполное имяполдата рождениястранагородаватар Config::Get('plugin.openid.vk.secure_key') // защищенный ключConfig::Get('plugin.openid.vk.id') // id приложения /** * Заполняем временную таблицу, пишем в куки ключ и перенаправляем на страницу ввода дополнительных данных */ $oTmp=Engine::GetEntity('PluginOpenid_Openid_Tmp'); $oTmp->setKey(func_generator(32)); $oTmp->setOpenid($sOpenId); $oTmp->setData(serialize($aData)); $oTmp->setDate(date("Y-m-d H:i:s")); $this->PluginOpenid_Openid_AddTmp($oTmp); setcookie('openidkey',$oTmp->getKey(),time()+Config::Get('plugin.openid.time_key_limit'),Config::Get('sys.cookie.path'),Config::Get('sys.cookie.host')); Router::Location(Router::GetPath('login').'openid/data/'); } } else { setcookie($sCookieName,'',1,Config::Get('sys.cookie.path'),Config::Get('sys.cookie.host')); $this->Message_AddErrorSingle($this->Lang_Get('openid_result_error_vk'),$this->Lang_Get('error')); } } $this->SetTemplateAction('openid'); }