Авторизация через Steam 3.4.8 - Дизайн и модификация Invision Power Board

Перейти к содержимому

 

Правила раздела

Здесь обсуждаются вопросы по настройке и администрированию форумов IPB 3.x.
Пожалуйста, не оффтопьте, если зашли сюда случайно, и обратите внимание на соседние разделы.
Установка, настройка и обслуживание форумов IPB 2.x.
Оформление форумов, включая верстку скинов.
Размещение рекламы на форумах.
SEO оптимизация форума.
Техническая поддержка наших скинов и модов.

СвернутьПрикрепленные теги

Теги не найдены

  • 2 Страниц +
  • 1
  • 2

Авторизация через Steam 3.4.8

#1 Пользователь не на сайте   HooLIGUN ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 138
  • Регистрация: 04-Декабрь 11
  • Репутация: 5
  • IPB version:3.4.x
 

Отправлено 10 Декабрь 2016 - 17:37

Здравствуйте.
Прошу помощи в исправлении хука IP.Board-Steam-Authentication-Method
Гит хаб
https://github.com/L...thod/tree/IPB34
Суть в том, что около месяца назад, видимо стим что то поменял в своем апи, и хук перестал работать.
При авторизации, и разрешении передачи данных на сайте стима, ничего не происходит.
То есть, при возвращении с сайта, авторизация не происходит, а просто обновляется страница.

Или хотя бы
В архиве есть все файлы хука для разработчика, может можно как то "отладить" ? Посмотреть, какие данные передает стим хуку, для того чтобы сравнить с данными, которые должен получать хук
0

#2 Пользователь не на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 9 065
  • Регистрация: 20-Март 09
  • Репутация: 2 430
  • IPB version:3.1.x
 

Отправлено 11 Декабрь 2016 - 13:25

/admin/sources/loginauth/steam/lib/steam_openid.php

    public static function validate()
    {
        // Start off with some basic params
        $params = array(
            'openid.assoc_handle' => $_GET['openid_assoc_handle'],
            'openid.signed' => $_GET['openid_signed'],
            'openid.sig' => $_GET['openid_sig'],
            'openid.ns' => 'http://specs.openid.net/auth/2.0',
        );

        // Get all the params that were sent back and resend them for validation
        $signed = explode(',', $_GET['openid_signed']);
        foreach ($signed as $item) {
            $val = $_GET['openid_' . str_replace('.', '_', $item)];
            $params['openid.' . $item] = get_magic_quotes_gpc() ? stripslashes($val) : $val;
        }

        // Finally, add the all important mode. 
        $params['openid.mode'] = 'check_authentication';

        //why do we do this? cause file_get_contents to a url goes left in many server configs... IPS is sturdier
        $classToLoad = IPSLib::loadLibrary(IPS_KERNEL_PATH . '/classFileManagement.php', 'classFileManagement');
        $classFileManagement = new $classToLoad;
        $result = $classFileManagement->postFileContents(self::STEAM_LOGIN, $params);
        //also... i could swear i commited this fork.

        // Validate wheather it's true and if we have a good ID
        preg_match("#^http://steamcommunity.com/openid/id/([0-9]{17,25})#", $_GET['openid_claimed_id'], $matches);
        $steamID64 = is_numeric($matches[1]) ? $matches[1] : 0;

        // Return our final value
        return preg_match("#is_valid\s*:\s*true#i", $result) == 1 ? $steamID64 : false;
    }

Заменить на

    public static function validate()
    {
		// Start off with some basic params
		$params = array(
			'openid.signed' => $_GET['openid_signed'],
			'openid.sig' => str_replace(' ', '+', $_GET['openid_sig']),
			'openid.ns' => 'http://specs.openid.net/auth/2.0',
		);

		foreach ($params as $key => &$value) {
			$value = urldecode($value);
		}

		// Get all the params that were sent back and resend them for validation
		$signed = explode(',', urldecode($_GET['openid_signed']));
		foreach ($signed as $item) {
			$val = $_GET['openid_' . str_replace('.', '_', $item)];

			if ($item !== 'response_nonce' || strpos($val, '%') !== false) {
				$val = urldecode($val);
			}

			$params['openid.' . $item] = get_magic_quotes_gpc() ? stripslashes($val) : $val;
		}

		// Finally, add the all important mode.
		$params['openid.mode'] = 'check_authentication';

		// Validate whether it's true and if we have a good ID
		preg_match("#^http://steamcommunity.com/openid/id/([0-9]{17,25})#", urldecode($_GET['openid_claimed_id']), $matches);
		$steamID64 = is_numeric($matches[1]) ? $matches[1] : 0;

		$classToLoad = IPSLib::loadLibrary(IPS_KERNEL_PATH . '/classFileManagement.php', 'classFileManagement');
		$classFileManagement = new $classToLoad;
		$response = $classFileManagement->postFileContents(self::STEAM_LOGIN, $params);

		$values = array();

		foreach (explode("\n", $response) as $value) {
			$data = explode(":", $value);

			$key = $data[0];
			unset($data[0]);

			$values[$key] = implode(':', $data);
		}

		// Return our final value
		return $values['is_valid'] === 'true' ? $steamID64 : false;
    }

1

#3 Пользователь не на сайте   HooLIGUN ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 138
  • Регистрация: 04-Декабрь 11
  • Репутация: 5
  • IPB version:3.4.x
 

Отправлено 11 Декабрь 2016 - 14:18

Теперь при авторизации происходит следующее:
Перекидывает на стим (для разрешения доступа) , разрешаю, перекидывает обратно на сайт, и опять мгновенно возвращает на сайт стима для разрешения доступа (с виду это не заметно, будто просто обновляется страница Steam)

А при прикреплении профиля к аккауту так же ничего не происходит, просто переадресация на страницу прикрепления без изменений.
0

#4 Пользователь не на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 9 065
  • Регистрация: 20-Март 09
  • Репутация: 2 430
  • IPB version:3.1.x
 

Отправлено 11 Декабрь 2016 - 14:42

Код взят с авторизации IPS4, других изменений я в нем не вижу.

Добавьте перед
$params = array(

Код
file_put_contents( DOC_IPS_ROOT_PATH.'cache/steam.log', print_r( $_GET , true )."\n\n" );

И приведете лог из cache/steam.log
1

#5 Пользователь не на сайте   HooLIGUN ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 138
  • Регистрация: 04-Декабрь 11
  • Репутация: 5
  • IPB version:3.4.x
 

Отправлено 11 Декабрь 2016 - 14:57

Array
(
    [openid_ns] => http://specs.openid.net/auth/2.0
    [openid_mode] => error
    [openid_error] => realm and return_to do not match
    [app] => core
    [module] => global
    [section] => login
    [do] => process
    [use_steam] => 1
)


Но на сколько мне известно, на 4ке данная авторизация тоже не работает..
0

#6 Пользователь не на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 9 065
  • Регистрация: 20-Март 09
  • Репутация: 2 430
  • IPB version:3.1.x
 

Отправлено 11 Декабрь 2016 - 15:06

Просмотреть сообщениеHooLIGUN сказал(а):

Но на сколько мне известно, на 4ке данная авторизация тоже не работает..

Не видел никаких issue на гитхабе об этом.
0

#7 Пользователь не на сайте   HooLIGUN ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 138
  • Регистрация: 04-Декабрь 11
  • Репутация: 5
  • IPB version:3.4.x
 

Отправлено 11 Декабрь 2016 - 15:27

Есть варианты решения такой ошибки?
0

#8 Пользователь не на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 9 065
  • Регистрация: 20-Март 09
  • Репутация: 2 430
  • IPB version:3.1.x
 

Отправлено 11 Декабрь 2016 - 15:35

Просмотреть сообщениеHooLIGUN сказал(а):

Есть варианты решения такой ошибки?

Есть. Исправить скрипт согласно ошибке. Как? Не знаю. У меня нет возможности его продебажить. Пишите автору.
0

#9 Пользователь не на сайте   HooLIGUN ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 138
  • Регистрация: 04-Декабрь 11
  • Репутация: 5
  • IPB version:3.4.x
 

Отправлено 11 Декабрь 2016 - 15:37

Пытался связаться с автором - игнор.
Проблему только что решил случайно.
У меня используется https соединение. Удалил условие выбора http\https (видимо оно почему то перестало работать) и установил принудительное https

Спасибо, что уделили мне время!
0

#10 Пользователь не на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 9 065
  • Регистрация: 20-Март 09
  • Репутация: 2 430
  • IPB version:3.1.x
 

Отправлено 11 Декабрь 2016 - 15:41

Если откатить замененная выше функция тоже будет работать?

Просмотреть сообщениеHooLIGUN сказал(а):

Пытался связаться с автором - игнор.

Он поддержку осуществляет на гитхабе.
0

#11 Пользователь не на сайте   HooLIGUN ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 138
  • Регистрация: 04-Декабрь 11
  • Репутация: 5
  • IPB version:3.4.x
 

Отправлено 11 Декабрь 2016 - 15:44

Просмотреть сообщениеsiv1987 11 Декабрь 2016 - 15:41 сказал(а):

Если откатить замененная выше функция тоже будет работать?

Да, я использовал исходный код (без указанных вами изменений)
0

#12 Пользователь не на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 9 065
  • Регистрация: 20-Март 09
  • Репутация: 2 430
  • IPB version:3.1.x
 

Отправлено 11 Декабрь 2016 - 15:59

Просмотреть сообщениеHooLIGUN сказал(а):

Да, я использовал исходный код (без указанных вами изменений)

Это конечно хорошо что заработало с исходным кодом, но вот именно по этому я не люблю делать дебагинг посредством форума. Фиг его знает что там делает пользователь, а ты сиди и ломай голову почему не работает.
2

#13 Пользователь не на сайте   HooLIGUN ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 138
  • Регистрация: 04-Декабрь 11
  • Репутация: 5
  • IPB version:3.4.x
 

Отправлено 11 Декабрь 2016 - 16:22

Просмотреть сообщениеsiv1987 11 Декабрь 2016 - 15:59 сказал(а):

Это конечно хорошо что заработало с исходным кодом, но вот именно по этому я не люблю делать дебагинг посредством форума. Фиг его знает что там делает пользователь, а ты сиди и ломай голову почему не работает.

Я с вами полностью согласен.
Но я начал работать с исходным кодом, после вашего последнего ответа, так как вы сказали, что у вас нет возможности.

Можно еще вопрос:
Возможно ли убрать доп.поле при регистрации через данный метод (steam)?
https://www.rgmix.eu...481462575__.png

Просто при такой регистрации я его и так автоматически получаю, и в ручную вводить его уже не нужно
0

#14 Пользователь не на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 9 065
  • Регистрация: 20-Март 09
  • Репутация: 2 430
  • IPB version:3.1.x
 

Отправлено 11 Декабрь 2016 - 16:45

Поле является обязательным к заполнению или нет?
0

#15 Пользователь не на сайте   HooLIGUN ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 138
  • Регистрация: 04-Декабрь 11
  • Репутация: 5
  • IPB version:3.4.x
 

Отправлено 11 Декабрь 2016 - 16:46

Нет
0

Сообщить об этой теме:


  • 2 Страниц +
  • 1
  • 2


Быстрый ответ

  

1 пользователей читают эту тему
0 зарегистрированных, 1 гостей, 0 скрытых


Контактная информация

Вопросы по работе сайта

+7 (917) 501-4765
C 10 до 20 в рабочие дни (время московское)

Техническая поддержка

Контактные данные специалистов

Дизайн форумов

IPB 3.x ¦ IPB 2.x

Бесплатные шаблоны

IPB 3.2 – 3.4 ¦ IPB 3.1 ¦ IPB 3.0 ¦ IPB 2.2 – 2.3 ¦ IPB 2.1 ¦ Клипарт
Лицензия на использование ¦ Ваша поддержка ¦ О проекте
Copyright © 2005-2018 IPBSkins.ru Team
При копировании материалов с сайта
прямая ссылка на источник обязательна