Веб-разработка. Доработка существующего продукта. Есть нерабочий код для авторизации пользователей для Яндекс ID, нужно доработать или создать новый если этот уж совсем чушь. Если указанная цена не устраивает можете предложить свою $params = array( 'client_id' => '', 'redirect_uri' => '', 'response_type' => 'code', 'state' => '123' ); $url = 'https://oauth.yandex.ru/authorize?' . urldecode(http_build_query($params)); echo '
Авторизация через Яндекс'; if (!empty($_GET['code'])) { // Отправляем код для получения токена (POST-запрос). $params = array( 'grant_type' => 'authorization_code', 'code' => $_GET['code'], 'client_id' => '', 'client_secret' => '', ); $ch = curl_init('https://oauth.yandex.ru/token'); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $params); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_HEADER, false); $data = curl_exec($ch); curl_close($ch); $data = json_decode($data, true); if (!empty($data['access_token'])) { // Токен получили, получаем данные пользователя. $ch = curl_init('https://login.yandex.ru/info'); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, array('format' => 'json')); curl_setopt($ch, CURLOPT_HTTPHEADER, array('Authorization: OAuth ' . $data['access_token'])); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_HEADER, false); $info = curl_exec($ch); curl_close($ch); $info = json_decode($info, true); echo '
'; print_r($info); echo '
'; } } // Получение данных пользователя от сервиса Яндекса $userData = file_get_contents('https://login.yandex.ru/info', false, stream_context_create([ 'http' => [ 'Authorization: OAuth ' . $data['access_token'], ], ])); $userData = json_decode($userData, true); if (!empty($userData['default_email'])) { $login = $_POST['login']; $default_email = $_POST['default_email']; // Формирование и выполнение запроса на вставку данных в таблицу $sql = “INSERT INTO users (login, default_email) VALUES ('$userData', '$userData')“; $stmt = $pdo->prepare($sql); $stmt->execute([$userData['login'], $userData['default_email']]); if ($stmt->rowCount() > 0) { echo “Данные пользователя успешно сохранены в базе данных“; } else { echo “Ошибка при сохранении данных пользователя“; } }.