XF2 [S70] Steam Authentication and Integration (Connected Accounts)

XF2 [S70] Steam Authentication and Integration (Connected Accounts) 1.7.9

Нет прав для покупки ( 455.67 ₽ )
Мдеа, понятно. Спасибо.
 
Плагин который регистрирует через Steam - BlackTea/SteamAuth 1.7.9
Версия PHP -
Кажется, пора бы записать это текстом, а то уже какой месяц приходят с такого рода вопросом, а я каждый раз снова и снова разбираюсь, исправляю и забываю об этом благополучно.

Для начала немного вводной.
PHP выше 7,2 и включен режим разработчика. Без режима разработчика все начинает работать
Человек тут близок к правде, и далёк одновременно.
Дополнение работает так же без проблем и на 7.3. Проблемы начинаются уже на 7.4 (и только там, 8.0 как правило норм работает), причём иногда такие, что хрен поймёшь, а в чём, собственно, зарыта собака, ведь ни ошибок нет, ничего...

Собака зарыта в .../ConnectedAccount/Service/Steam.php.
В чём, собственно, дело: в методе requestAccessToken() происходит валидация, а не подделан ли реквест юзера был. Для этого, спецификация OpenID предусматривает подтверждение валидности полученного идентификатора путём валидации параметров, с которыми юзер пришёл на сервер форума обратно. Технически это выглядит как "взять все параметры, с которыми пришёл юзер, и сходить с ними к серверу аутентификации" (в нашем случае, к Стиму). А он в ответ скажет "да, это от меня" или "нет, я ничего не выдавал" (очень упрощённо). Именно так, потому что фактически OpenID опускает обязательность регистрации конечного ресурса, которому будут выдаваться идентификаторы. Это, кстати, одна из причин, по которой "вход через Steam" можно сделать даже без Steam Web API Key, и почему в поле домена при выпуске ключа Steam можно хоть локалхост вбивать.

На процессе сборки запроса к Стиму собака и зарылась: дополнение полагается на функционал, который, начиная с PHP 7.4, помечен устаревшим, а с 8.0 и вырезан совсем. Опустим причины, по которым ошибки при обращении к нему нет, этого даже я не знаю, но скорее всего движок как-то по своему обрабатывает депрекейтеды.
Если ближе к сути, то проблема здесь:
PHP:
        foreach ($signedItems as $item) {
            $param = 'openid_' . str_replace('.', '_', $item);
            $value = filter_input(INPUT_GET, $param, FILTER_SANITIZE_URL);

            // Вот здесь:
            $params['openid.' . $item] = function_exists('get_magic_quotes_gpc') && get_magic_quotes_gpc() ? stripslashes($value) : $value;
        }
И, хотя дополнение проверяет существование функции, оно никак не обрабатывает возможный кейс вылета Deprecated сообщения. Вот так всё просто.
Чтобы получить минимально работающее дополнение, нужно просто убрать использование функции:
PHP:
        foreach ($signedItems as $item) {
            $param = 'openid_' . str_replace('.', '_', $item);
            $value = filter_input(INPUT_GET, $param, FILTER_SANITIZE_URL);
            $params['openid.' . $item] = $value;
        }

Зы: Если кто-то хочет, может пересобрать дополнение без этой проблемы. Не буду возражать.
 
Приветствую, помогите пожалуйста вывести SteamID в дополнительные поля пользователя.
 
Всем доброго времени суток, столкнулся вот с такой проблемой - Ошибка соединения с Steam. Пожалуйста попробуйте позже
Версия движка v2.2.8
Плагин который регистрирует через Steam - BlackTea/SteamAuth 1.7.9
Версия PHP -
Не знаю что случилось, сверил API ключ, домен, все верно указано
Люди не могут зарегистрироватся и привязать аккаунт Steam к своему профилю
В чем может быть причина этой неполадки.
просто отключи режим разрабочтка в конфиге и все
 
Подъем темы без причины
Если вы разбираетесь в этом так опишите как и что там вписать или убрать честно уже устал искать решение!

Скину на шоколадку, кто поможет с этим вопросом!
 
Последнее редактирование модератором:
Доброго времени суток. Имеесть хостинг с внешним IP адресом, был куплен для авторизации через стим, через пару часов появилась ошибка
Ошибка соединения с Steam. Пожалуйста, попробуйте позже.
Работает сервер на апаче с рейсией PHP 7.4 и 8,0
На стороне стима в разделе api всё прописано
 
Доброго времени суток. Имеесть хостинг с внешним IP адресом, был куплен для авторизации через стим, через пару часов появилась ошибка

Работает сервер на апаче с рейсией PHP 7.4 и 8,0
На стороне стима в разделе api всё прописано
Ответ буквально на этой же странице 6 постами выше
 
я удалил ту строчку
Ну можно быть чуть внимательнее? Надо не просто удалить строчку, а заменить. Специально в том же посте указан правильный код, ну как так то
"нужно просто убрать использование функции" не равно "убрать строчку"
 
Ну можно быть чуть внимательнее? Надо не просто удалить строчку, а заменить. Специально в том же посте указан правильный код, ну как так то
"нужно просто убрать использование функции" не равно "убрать строчку"
всё делал как описано, но переехали на VPS всё заработало ☹️ вот и мистика
 
В случае возникновения подобной ошибки:
Ошибка соединения с Steam. Пожалуйста, попробуйте позже.

Возможно проверить блокировку со стороны Steam следующим образом:
Код:
<?php
   print_r(file_get_contents("https://steamcommunity.com/openid"));
?>

Если выдаст 403 Forbidden, значит блокировка со стороны Steam (точно). Обычно сбрасывается спустя пару дней, но слышал у некоторых и месяц не спадала, помогал только переезд.
 
Решается выделенным адресом :)
 
Maza47, это уже зависит от того, учитывает ли хостинг наличие приобретённого выделенного адреса и начинает пускать трафик с него, или нет.
Ведь на обычных веб-хостингах лишь трафик начинает поступать на Ваш адрес, а выходит он по-прежнему с общего...
 
Добрый день как настроить данный плагин?
 
Lumwell, так же, как и любого провайдера: прописать Steam API ключ в провайдерах. И, кажется, всё.
 
Современный облачный хостинг провайдер | Aéza
Назад
Сверху Снизу