Уважаемые пользователи!
C 7 ноября 2020 года phpBB Group прекратила выпуск обновлений и завершила дальнейшее развитие phpBB версии 3.2.
С 1 августа 2024 года phpBB Group прекращает поддержку phpBB 3.2 на официальном сайте.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.2 до 31 декабря 2024 года.
С учетом этого, настоятельно рекомендуется обновить конференции до версии 3.3.

Ошибка в процессе авторизации посредством oauth

Проблемы с установкой или работой phpBB 3.1.x? Получите помощь здесь!
С 1 июля 2018 года phpBB Group прекращает поддержку phpBB версии 3.1.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.1 до 1 января 2019 года.
Подробнее: Окончание поддержки phpBB 3.1.
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Мини [FAQ] по phpBB3.1.x | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать расширения

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
DesignerMix
phpBB 1.4.3
Сообщения: 96
Стаж: 9 лет 10 месяцев
Благодарил (а): 22 раза
Поблагодарили: 20 раз
Контактная информация:

Ошибка в процессе авторизации посредством oauth

Сообщение DesignerMix »

Описание проблемы: Настроил авторизацию через oauth для google. Создал в google developers web-приложение и ввел значения key и secret в phpBB. При авторизации посредством Google через oauth после нажатия кнопки "Принять" на шаге принятия разрешений для приложения появляется ошибка (текст ниже). А также было замечено что если выйти из системы (из под учетки админа) то войти обратно не получается т.к. появляется ошибка (см. ниже).
Произведенные изменения, после которых начались неполадки: Установил новую версию phpBB для тестирования
Версия phpBB: phpBB 3.1.0 RC3
Используемые стили: prosilver
Используемые моды: нет
Версия PHP: 5.3.13
Используемая СУБД и её версия: phpMyAdmin 3.5.1
Ссылка на конференцию: на локальной машине
Есть ли у вас тестовый аккаунт: нет
Использовался ли поиск для решения проблемы: да, но на phpbb.com только одна подобная тема
Если да, то какие запросы вы использовали: oauth fatal error

Вопрос собственно в том являются-ли эти ошибки следствием кривой настройки (если да, то подскажите как исправить) или-же это баг RC3?

Ошибка появляющаяся после принятия разрешений для приложения google:

Код: Выделить всё

Fatal error: Uncaught exception 'OAuth\Common\Http\Exception\TokenResponseException' with message 'Function set_magic_quotes_runtime() is deprecated' in Z:\home\dmytl.ru\www\Test\vendor\lusitanian\oauth\src\OAuth\Common\Http\Client\StreamClient.php:55 Stack trace: #0 Z:\home\dmytl.ru\www\Test\vendor\lusitanian\oauth\src\OAuth\OAuth2\Service\AbstractService.php(97): OAuth\Common\Http\Client\StreamClient->retrieveResponse(Object(OAuth\Common\Http\Uri\Uri), Array, Array) #1 Z:\home\dmytl.ru\www\Test\phpbb\auth\provider\oauth\service\google.php(80): OAuth\OAuth2\Service\AbstractService->requestAccessToken('4/4B7yxLnMXXf80...') #2 Z:\home\dmytl.ru\www\Test\phpbb\auth\provider\oauth\oauth.php(189): phpbb\auth\provider\oauth\service\google->perform_auth_login() #3 Z:\home\dmytl.ru\www\Test\phpbb\auth\auth.php(937): phpbb\auth\provider\oauth\oauth->login('', '') #4 Z:\home\dmytl.ru\www\Test\includes\functions.php(2812): phpbb\auth\auth->login('', '', false, 1, 0) #5 Z:\home\dmytl.ru\www\Test\ucp.php(84): login_box('index.php') #6 in Z:\home\dmytl.ru\www\Test\vendor\lusitanian\oauth\src\OAuth\Common\Http\Client\StreamClient.php on line 55
Ошибка появляющаяся при попытке войти под единственной учетной записью администратора (при условии что в настройках авторизации oauth были внесены key и secet для google)

Код: Выделить всё

Catchable fatal error: Argument 6 passed to phpbb\auth\provider\db::__construct() must implement interface Symfony\Component\DependencyInjection\ContainerInterface, string given, called in Z:\home\dmytl.ru\www\Test\phpbb\auth\provider\oauth\oauth.php on line 163 and defined in Z:\home\dmytl.ru\www\Test\phpbb\auth\provider\db.php on line 48
Вложения
Здесь я вписывал нужные значения
Здесь я вписывал нужные значения
Кнопка Google появляющаяся после настройки oauth
Кнопка Google появляющаяся после настройки oauth
google.PNG (6.46 КБ) 1882 просмотра
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 16313
Стаж: 17 лет 10 месяцев
Откуда: Красноярск
Благодарил (а): 533 раза
Поблагодарили: 2119 раз
Контактная информация:

Re: Ошибка в процессе авторизации посредством oauth

Сообщение rxu »

DesignerMix
Ошибка уже исправлена и выйдет в следующем релизе, тикет: https://tracker.phpbb.com/browse/PHPBB3-12975 и патч: https://github.com/phpbb/phpbb/pull/2872/files
Можете попробовать или самостоятельно внести исправления, как указано в патче, или скачать текущий снапшот по прямой ссылке из репозитория https://github.com/phpbb/phpbb (ссылка на архив в правом нижнем углу) и заменить файлы /config/auth_providers.yml и /phpbb/auth/provider/oauth/oauth.php. Необходима очистка кэша.
Изображение
DesignerMix
phpBB 1.4.3
Сообщения: 96
Стаж: 9 лет 10 месяцев
Благодарил (а): 22 раза
Поблагодарили: 20 раз
Контактная информация:

Re: Ошибка в процессе авторизации посредством oauth

Сообщение DesignerMix »

rxu, спасибо, ошибка которая возникала при попытке войти как администратор после настройки oauth пропала, но при попытке входа через аккаунт Google ничего не изменилось.

Что я делал?
Я переустановил форум (т.к. он тестовый и это было проще всего), заменил два файла которые вы указали (качал отсюда https://github.com/phpbb/phpbb), очистил кэш и настроил oauth.
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 16313
Стаж: 17 лет 10 месяцев
Откуда: Красноярск
Благодарил (а): 533 раза
Поблагодарили: 2119 раз
Контактная информация:

Re: Ошибка в процессе авторизации посредством oauth

Сообщение rxu »

DesignerMix писал(а):при попытке входа через аккаунт Google ничего не изменилось
Какая из ошибок осталась? "Fatal error: Uncaught exception" или "Catchable fatal error: Argument 6"?
Каково значение параметра magic_quotes_runtime в настройках PHP?
Изображение
DesignerMix
phpBB 1.4.3
Сообщения: 96
Стаж: 9 лет 10 месяцев
Благодарил (а): 22 раза
Поблагодарили: 20 раз
Контактная информация:

Re: Ошибка в процессе авторизации посредством oauth

Сообщение DesignerMix »

rxu писал(а):Какая из ошибок осталась?
Fatal error: Uncaught exception
rxu писал(а):Каково значение параметра magic_quotes_runtime в настройках PHP?
Из php.ini - "magic_quotes_runtime = Off". Также попробовал установить magic_quotes_runtime = On и после этого перезапустил denwer, но ничего не изменилось.
Текст ошибки 
Fatal error: Uncaught exception 'OAuth\Common\Http\Exception\TokenResponseException' with message 'Function set_magic_quotes_runtime() is deprecated' in Z:\home\dmytl.ru\www\Test\vendor\lusitanian\oauth\src\OAuth\Common\Http\Client\StreamClient.php:55 Stack trace: #0 Z:\home\dmytl.ru\www\Test\vendor\lusitanian\oauth\src\OAuth\OAuth2\Service\AbstractService.php(97): OAuth\Common\Http\Client\StreamClient->retrieveResponse(Object(OAuth\Common\Http\Uri\Uri), Array, Array) #1 Z:\home\dmytl.ru\www\Test\phpbb\auth\provider\oauth\service\google.php(80): OAuth\OAuth2\Service\AbstractService->requestAccessToken('4/o3HR50Npq5kjA...') #2 Z:\home\dmytl.ru\www\Test\phpbb\auth\provider\oauth\oauth.php(198): phpbb\auth\provider\oauth\service\google->perform_auth_login() #3 Z:\home\dmytl.ru\www\Test\phpbb\auth\auth.php(937): phpbb\auth\provider\oauth\oauth->login('', '') #4 Z:\home\dmytl.ru\www\Test\includes\functions.php(2812): phpbb\auth\auth->login('', '', false, 1, 0) #5 Z:\home\dmytl.ru\www\Test\ucp.php(84): login_box('index.php') #6 in Z:\home\dmytl.ru\www\Test\vendor\lusitanian\oauth\src\OAuth\Common\Http\Client\StreamClient.php on line 55
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 16313
Стаж: 17 лет 10 месяцев
Откуда: Красноярск
Благодарил (а): 533 раза
Поблагодарили: 2119 раз
Контактная информация:

Re: Ошибка в процессе авторизации посредством oauth

Сообщение rxu »

DesignerMix
Есть предложения для эксперимента.
В includes/startup.php в строке @set_magic_quotes_runtime(0); сделать поочередно следующее:
  • Закомментировать строку, т.е. привести ее к виду // @set_magic_quotes_runtime(0);, проверить результат.
  • Заменить указанную строку на @ini_set('magic_quotes_runtime', 0);, проверить результат.
И еще вопрос - каково значение параметра error_reporting в php.ini?
Изображение
DesignerMix
phpBB 1.4.3
Сообщения: 96
Стаж: 9 лет 10 месяцев
Благодарил (а): 22 раза
Поблагодарили: 20 раз
Контактная информация:

Re: Ошибка в процессе авторизации посредством oauth

Сообщение DesignerMix »

rxu, попробовал.
На всякий случай привожу ошибки появляющиеся после того-же шага (принятия разрешений приложения).
Ошибка после того как я закомментировал строку @set_magic_quotes_runtime(0); 
Fatal error: Uncaught exception 'OAuth\Common\Http\Exception\TokenResponseException' with message 'Failed to request resource.' in Z:\home\dmytl.ru\www\Test\vendor\lusitanian\oauth\src\OAuth\Common\Http\Client\StreamClient.php:54 Stack trace: #0 Z:\home\dmytl.ru\www\Test\vendor\lusitanian\oauth\src\OAuth\OAuth2\Service\AbstractService.php(97): OAuth\Common\Http\Client\StreamClient->retrieveResponse(Object(OAuth\Common\Http\Uri\Uri), Array, Array) #1 Z:\home\dmytl.ru\www\Test\phpbb\auth\provider\oauth\service\google.php(80): OAuth\OAuth2\Service\AbstractService->requestAccessToken('4/SBsuiLpxGqqEc...') #2 Z:\home\dmytl.ru\www\Test\phpbb\auth\provider\oauth\oauth.php(198): phpbb\auth\provider\oauth\service\google->perform_auth_login() #3 Z:\home\dmytl.ru\www\Test\phpbb\auth\auth.php(937): phpbb\auth\provider\oauth\oauth->login('', '') #4 Z:\home\dmytl.ru\www\Test\includes\functions.php(2812): phpbb\auth\auth->login('', '', false, 1, 0) #5 Z:\home\dmytl.ru\www\Test\ucp.php(84): login_box('index.php') #6 {main} thrown in Z:\home\dmytl.ru\www\Test\vendor\lusitanian\oauth\src\OAuth\Common\Http\Client\StreamClient.php on line 54
Ошибка после того как я заменил строку на @ini_set('magic_quotes_runtime', 0); 
Fatal error: Uncaught exception 'OAuth\Common\Http\Exception\TokenResponseException' with message 'Failed to request resource.' in Z:\home\dmytl.ru\www\Test\vendor\lusitanian\oauth\src\OAuth\Common\Http\Client\StreamClient.php:54 Stack trace: #0 Z:\home\dmytl.ru\www\Test\vendor\lusitanian\oauth\src\OAuth\OAuth2\Service\AbstractService.php(97): OAuth\Common\Http\Client\StreamClient->retrieveResponse(Object(OAuth\Common\Http\Uri\Uri), Array, Array) #1 Z:\home\dmytl.ru\www\Test\phpbb\auth\provider\oauth\service\google.php(80): OAuth\OAuth2\Service\AbstractService->requestAccessToken('4/mh61YNfacFKc2...') #2 Z:\home\dmytl.ru\www\Test\phpbb\auth\provider\oauth\oauth.php(198): phpbb\auth\provider\oauth\service\google->perform_auth_login() #3 Z:\home\dmytl.ru\www\Test\phpbb\auth\auth.php(937): phpbb\auth\provider\oauth\oauth->login('', '') #4 Z:\home\dmytl.ru\www\Test\includes\functions.php(2812): phpbb\auth\auth->login('', '', false, 1, 0) #5 Z:\home\dmytl.ru\www\Test\ucp.php(84): login_box('index.php') #6 {main} thrown in Z:\home\dmytl.ru\www\Test\vendor\lusitanian\oauth\src\OAuth\Common\Http\Client\StreamClient.php on line 54
Вот такой вот URL открыт в момент появления ошибки "http://www.dmytl.ru/test/ucp.php?mode=l ... Jwxz...kAI" (в значении "code" некоторые символы (это цифры и буквы) заменены на многоточия т.к. я не уверен что код стоит делать общедоступным).
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 16313
Стаж: 17 лет 10 месяцев
Откуда: Красноярск
Благодарил (а): 533 раза
Поблагодарили: 2119 раз
Контактная информация:

Re: Ошибка в процессе авторизации посредством oauth

Сообщение rxu »

DesignerMix
Вопросы:
1) В php.ini расширение php_openssl.dll включено?
2) В php.ini параметр allow_url_fopen включен?

Попробуйте создать в корне сервера и запустить файл (например, test.php) следующего содержания:

Код: Выделить всё

$w = stream_get_wrappers();
echo 'openssl: ',  extension_loaded  ('openssl') ? 'yes':'no', "\n";
echo 'http wrapper: ', in_array('http', $w) ? 'yes':'no', "\n";
echo 'https wrapper: ', in_array('https', $w) ? 'yes':'no', "\n";
echo 'wrappers: ', var_dump($w);
Покажите результат.
Изображение
DesignerMix
phpBB 1.4.3
Сообщения: 96
Стаж: 9 лет 10 месяцев
Благодарил (а): 22 раза
Поблагодарили: 20 раз
Контактная информация:

Re: Ошибка в процессе авторизации посредством oauth

Сообщение DesignerMix »

rxu писал(а):В php.ini расширение php_openssl.dll включено?
Вот такая строка ;extension=php_openssl.dll, так что по видимому отключено.
rxu писал(а):В php.ini параметр allow_url_fopen включен?
Да, включен - allow_url_fopen = On
rxu писал(а):Покажите результат.
openssl: no http wrapper: yes https wrapper: no wrappers: array(9) { [0]=> string(3) "php" [1]=> string(4) "file" [2]=> string(4) "glob" [3]=> string(4) "data" [4]=> string(4) "http" [5]=> string(3) "ftp" [6]=> string(3) "zip" [7]=> string(13) "compress.zlib" [8]=> string(4) "phar" }
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 16313
Стаж: 17 лет 10 месяцев
Откуда: Красноярск
Благодарил (а): 533 раза
Поблагодарили: 2119 раз
Контактная информация:

Re: Ошибка в процессе авторизации посредством oauth

Сообщение rxu »

DesignerMix писал(а):https wrapper: no
Видимо, здесь проблема.
Включите ssl extension=php_openssl.dll, перезапустте сервер и попробуйте скрипт снова.
Изображение
DesignerMix
phpBB 1.4.3
Сообщения: 96
Стаж: 9 лет 10 месяцев
Благодарил (а): 22 раза
Поблагодарили: 20 раз
Контактная информация:

Re: Ошибка в процессе авторизации посредством oauth

Сообщение DesignerMix »

rxu писал(а):Видимо, здесь проблема. Включите ssl
Вы правы, включил и все получилось! Спасибо. Тему видимо можно закрывать.

Вот только оказалось что это немного не то, чего я ожидал. Я думал что будет произведена автоматическая регистрация при входе со стороннего сервиса, а здесь получается требуется либо привязка к существующему аккаунту, либо регистрация:
You have attempted to login with an external service that is not yet connected to an account on this board. You must now either link this account to an existing account or create a new account.
Т.е. это конечно удобно что в дальнейшем можно будет входить с учеткой например от google (без ввода пароля форума), но хотелось-бы более упрошенной схемы регистрации. Хотя с другой стороны разработчиков я тоже понимаю, ведь нужно взять какой-то параметр в качестве логина, а это не всегда (не во всех сторонних сервисах) возможно.
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 16313
Стаж: 17 лет 10 месяцев
Откуда: Красноярск
Благодарил (а): 533 раза
Поблагодарили: 2119 раз
Контактная информация:

Re: Ошибка в процессе авторизации посредством oauth

Сообщение rxu »

И всё-таки, какое значение параметра error_reporting в php.ini?
дело в том, что phpBB предпринимает попытку подавления вывода предупреждений об устаревших (deprecated) функциях, но в вашем случае это не сработало.
Изображение
DesignerMix
phpBB 1.4.3
Сообщения: 96
Стаж: 9 лет 10 месяцев
Благодарил (а): 22 раза
Поблагодарили: 20 раз
Контактная информация:

Re: Ошибка в процессе авторизации посредством oauth

Сообщение DesignerMix »

rxu писал(а):какое значение параметра error_reporting в php.ini?
Вот - error_reporting = E_ALL & ~E_NOTICE

PS: У меня установлен denwer со стандартной конфигурацией, там даже библиотеки php_openssl.dll не было, пришлось выкачивать отдельно.
digel
phpBB 1.0.0
Сообщения: 6
Стаж: 6 лет 1 месяц
Благодарил (а): 3 раза

Re: Ошибка в процессе авторизации посредством oauth

Сообщение digel »

Здравствуйте!
Подскажите пожалуйста а в phpBB 3.2.1 в разделе СРЕДСТВА СВЯЗИ => Аутентификация есть режим "oauth" . Я получил от гугла Google Ключ: xxx....xxx и Секретный код:xxx...xxx. Единственное гугл везде пишет oauth2.
Появилась кнопка Google чуть ниже ввода логина и пароля. При нажатии на эту кнопку появляется вот это сообщение.

Код: Выделить всё

400. That’s an error.

Error: redirect_uri_mismatch

The redirect URI in the request, http://aqaforum.ru/ucp.php?mode=login&login=external&oauth_service=google, does not match the ones authorized for the OAuth client. To update the authorized redirect URIs, visit: https://console.developers.google.com/apis/credentials/oauthclient/217411186053-r82c91gr8fo1g1c56mqansp58sul1btc.apps.googleusercontent.com?project=217411186053

Learn more

Request Details
access_type=online
type=web_server
client_id=217411186053-r82c91gr8fo1g1c56mqansp58sul1btc.apps.googleusercontent.com
redirect_uri=http://aqaforum.ru/ucp.php?mode=login&login=external&oauth_service=google
response_type=code
scope=https://www.googleapis.com/auth/userinfo.email https://www.googleapis.com/auth/userinfo.profile
state=84603d2e4a52a32447b0d3a31b0f8fd1
Что не так?
Или просто phpBB 3.2.1 не работает с OAuth2.
Последний раз редактировалось Sheer 13.02.2018 16:44, всего редактировалось 1 раз.
Причина: bb-код. Когда же вы наконец научитесь пользоваться bb-кодами!!!
Аватара пользователя
Sheer
Former team member
Сообщения: 12113
Стаж: 17 лет 1 месяц
Откуда: Калининград не Кенигсберг
Благодарил (а): 54 раза
Поблагодарили: 2752 раза
Контактная информация:

Re: Ошибка в процессе авторизации посредством oauth

Сообщение Sheer »

digel писал(а): 13.02.2018 16:36Что не так?
Там же написано.
Изображение
Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.
Закрыто

Вернуться в «Поддержка phpBB 3.1.x»