/** * Обработка ответа сервера авторизации */ function ulogin_parse_request() { if (!isset($_POST['token'])) { wp_die(__("<b>Ошибка работы uLogin:</b></br></br>" . "Не был получен токен uLogin."), 'uLogin error', array('back_link' => true)); return; // не был получен токен uLogin } $s = ulogin_get_user_from_token($_POST['token']); if (!$s) { wp_die(__("<b>Ошибка работы uLogin:</b></br></br>" . "Не удалось получить данные о пользователе с помощью токена."), 'uLogin error', array('back_link' => true)); return; } $u_user = json_decode($s, true); if (!ulogin_check_token_error($u_user)) { return; } global $wpdb; uLoginPluginSettings::register_database_table(); $user_id = $wpdb->get_var($wpdb->prepare("SELECT userid FROM {$wpdb->ulogin} where identity = %s", urlencode($u_user['identity']))); if (isset($user_id)) { $wp_user = get_userdata($user_id); if ($wp_user->ID > 0 && $user_id > 0) { ulogin_check_user_id($user_id); } else { // данные о пользователе есть в ulogin_table, но отсутствуют в WP. Необходимо выполнить перерегистрацию в ulogin_table и регистрацию/вход в WP. $user_id = ulogin_registration_user($u_user, 1); } } else { // пользователь НЕ обнаружен в ulogin_table. Необходимо выполнить регистрацию в ulogin_table и регистрацию/вход в WP. $user_id = ulogin_registration_user($u_user); } // обновление данных и Вход if ($user_id > 0) { ulogin_enter_user($u_user, $user_id); } }
} $u_user = json_decode($user, true); $check = uloginCheckTokenError($u_user); if (!$check) { return false; } $user_id = getUserIdByIdentity($u_user['identity']); if (!empty($user_id)) { $d = USER::getUserById($user_id); if ($user_id > 0 && $d->id > 0) { uloginCheckUserId($user_id); } else { $user_id = ulogin_registration_user($u_user, 1); } } else { $user_id = ulogin_registration_user($u_user); } if ($user_id > 0) { $userData = USER::getUserById($user_id); $userData->hash = md5($userData->email . $userData->date_add . $_SERVER['REMOTE_ADDR']); $_SESSION['userAuthDomain'] = $_SERVER['SERVER_NAME']; $_SESSION['user'] = $userData; $_SESSION['loginAttempt'] = ''; } header('Location: ' . urldecode($_GET['backurl'])); /** * Обменивает токен на пользовательские данные * @param bool $token * @return bool|mixed|string */ function uloginGetUserFromToken($token = false)