Всем привет! подскажите новичку!))) не могу справиться с авторизацией пользователей вконтакте, создал приложение указал ID приложения, Защищённый ключ в Editor: social.php иконка авторизации появилась, захожу авторизовался но как пользователя авторизованного акаунта нету, переводит именно на такую же страницу в новой рамке которая была изначально! Где что менять нужно в Editor. users.social.php
# Ищем соц.аккаунт
$aData = $this->getSocialAccountData($nProfileID, $nProviderID);
if (empty($aData)) # нет соц.аккаунта
{
# Создаем соц.аккаунт
$nSocialID = $this->createSocialAccount(0, $nProfileID, $nProviderID, $this->serializeHybridProfile($profile));
if ($nSocialID) {
if ($nUserID) {
# пользователь авторизован => привязываем соц.аккаунт к пользователю
$this->linkSocialAccountToUser($nSocialID, $nUserID);
$this->redirectFromPopup();
}
# сохраняем в сессии пометку о процессе авторизации через соц.сеть
$this->authStatus($nSocialID);
# переходим к шагу №2
$this->redirectFromPopup(Users::url('register', array('step' => 'social')));
} else {
# Неудалось создать соц.аккаунт
$this->errors->set(_t('users', 'Произошла ошибка авторизации, попробуйте обновить страницу и авторизоваться повторно'));
}
} else {
$nSocialID = $aData['id'];
if (!$aData['user_id']) # соц.аккаунт не привязан к пользователю сайта
{
if ($nUserID) {
# пользователь авторизован => привяжем соц.аккаунт к пользователю
$this->linkSocialAccountToUser($nSocialID, $nUserID);
$this->redirectFromPopup();
}
# сохраняем в сессии пометку о процессе авторизации через соц.сеть
$this->authStatus($nSocialID);
# переходим к шагу №2
$this->redirectFromPopup(Users::url('register', array('step' => 'social')));
} else # привязан
{
if ($nUserID) {
# одновременно один профиль в одной соц.сети не может быть привязан
# к двум разным аккаунтам пользователей(TABLE_USERS), поэтому проверку на привязку
# текущего пользователя к данному соц.аккаунту ($nSocialID) не выполняем:
# - пользователь авторизован, обновляем страницу
$this->redirectFromPopup();
}
# Авторизуем пользователя привязанного к данному соц.аккаунту
$mResult = Users::i()->userAuth($aData['user_id'], 'user_id', $aData['user_password'], true, true);
if ($mResult === true) {
$this->redirectFromPopup();
} elseif ($mResult === 1) {
# неактивирован
# ... выводим сообщение о необходимости Активации аккаунта
} elseif (is_array($mResult)) {
# заблокирован
# ... выводим сообщение о Блокировке аккаунта и причину
}
}
}
} catch (\Exception $e) {
$nErrorCode = $e->getCode();
if ($nErrorCode == 5) { # пользователь нажал "Отмена"
$this->redirectFromPopup();
}
$aErrors = array(
# Unspecified error.
0 => 'Неизвестная ошибка.',
# Unknown or disabled provider.
1 => 'Ошибка конфигурации Hybriauth.',
# Provider not properly configured.
2 => 'Провайдер настроен некорректно.',
# Unknown or disabled provider.
3 => 'Неизвестный или неподдерживаемый провайдер.',
# Missing provider application credentials.
4 => 'Доступы проложения провайдера настроены некорректно.',
# Authentification failed. The user has canceled the authentication or the provider refused the connection.
5 => 'Ошибка аутентификации. Пользователь "отменил" либо провайдер отказал в подключении',
# User profile request failed. Most likely the user is not connected to the provider and he should to authenticate again.
6 => 'Запрос к данным профиля пользователя завершился ошибкой. Скорее всего пользователь не подключился к провайдеру и необходима повторная аутентификация',
# User not connected to the provider.
7 => 'Пользователь не подключился к провайдеру.',
);
if (isset($aErrors[$nErrorCode])) {
$error = $aErrors[$nErrorCode];
if (in_array($nErrorCode, array(6, 7))) {
if (!empty($adapter)) {
$adapter->logout();
}
}
}
bff::log('HybridAuth: ' . $e->getMessage());
}
return 0;
}
/**
* Помечаем / получаем процесс авторизации в сессии
* @param integer|null $mSocialID ID соц.аккаунта или NULL(получаем текущий)
* return mixed
*/
public function authStatus($mSocialID = null)
{
$sKey = 'users-login-social-status';
if (is_null($mSocialID)) {
return $this->security->getSESSION($sKey);
} else {
$this->security->setSESSION($sKey, $mSocialID);
}
}
/**
* Получаем данные о процессе авторизации
* return array|boolean
*/
public function authData()
{
$nSocialID = $this->authStatus();
do {
if (empty($nSocialID)) {
break;
}
$aData = $this->getSocialAccountData($nSocialID, false);
if (empty($aData)) {
break;
}