Example #1
0
/**
 * Обработка ответа сервера авторизации
 */
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);
    }
}
Example #2
0
}
$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)