Уважаемые пользователи!
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 - Google

Проблемы с установкой или работой phpBB 3.3.x? Получите помощь здесь!
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Мини [FAQ] по phpBB 3.1.x/3.2.x | FAQ | Как задавать вопросы | Как устанавливать расширения

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
kirill1123
phpBB 1.4.1
Сообщения: 42
Стаж: 3 года
Благодарил (а): 3 раза

Аутентификация Oauth - Google

Сообщение kirill1123 »

Ребята помогите! Уже час ищу в интернете инфу, как подключить аутентификацию через Гугл. Есть ли какая нибудь подробная инструкция, как это сделать? Я как-то подключил это услугу( горе по полам), но в итоге когда я нажимаю "Вход через Google", у меня выскакивает следующее сообщение: "Вы попытались войти с помощью учётной записи другого сервиса, которая пока не связана с учётной записью конференции. Необходимо связать данную учётную запись с существующей или создать новую учётную запись на конференции." Что делать?
Аватара пользователя
Татьяна5
Поддержка
Поддержка
Сообщения: 12425
Стаж: 12 лет 8 месяцев
Благодарил (а): 166 раз
Поблагодарили: 2477 раз

Re: Аутентификация Oauth - Google

Сообщение Татьяна5 »

По стандарту регистрации через гугл нет, только вход
Чтобы можно было войти надо сначала привязать учётную запись в личном разделе
romeo_piter
phpBB 2.0.21
Сообщения: 1316
Стаж: 15 лет
Благодарил (а): 159 раз
Поблагодарили: 21 раз

Re: Аутентификация Oauth - Google

Сообщение romeo_piter »

Есть проблема с настройкой аутентификации.
Получаю такое:

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

Доступ заблокирован: это приложение отправило недопустимый запрос
Ошибка 400: redirect_uri_mismatch

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

Ошибка 400: redirect_uri_mismatch

Невозможно выполнить вход в приложение, поскольку оно не отвечает правилам OAuth 2.0 Google.

Если вы его разработчик, зарегистрируйте URI перенаправления в Google Cloud Console.
Параметры запроса: redirect_uri=https://xxxxx.ru/ucp.php?i=ucp_auth_link&mode=auth_link&link=1&oauth_service=google
Какую ссылку указать в консоли: "Authorized redirect URIs"? Указывал там то что ниже и то что в описании ошибки, но гугл явно что-то другое хочет, судя по описанию, но что?

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

Users will be redirected to this path after they have authenticated with Google. The path will be appended with the authorization code for access, and must have a protocol. It can’t contain URL fragments, relative paths, or wildcards, and can’t be a public IP address.
Пишу это (с просторов сети):

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

https://xxxxx.ru/ucp.php?mode=login&login=external&oauth_service=google
Не работает.

Отправлено спустя 1 час 12 минут 55 секунд:
Условно победил, но какая-то чудная фигня. Привязка из личного раздела не удается. Хотя именно этот способ должен работать корректно: заходим под обычной учеткой, идем в профиль. Привязываем. Пользуемся. Так не работает.

Работает так. Идем в форму регистрации, жмем на кнопку (причем ссылка в личном разделе такая же один в один)

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

<a href="https://xxxxx.ru/ucp.php?mode=login&amp;login=external&amp;oauth_service=google" class="button2">Google</a>
После этого нас перекидывает в форму входа, где написано, что нет привязки, для реализации надо зайти под своей учеткой. Заходим. Работает. В личном разделе видно привязку.

Но почему привязка не работает там, где должна работать?
Аватара пользователя
Nekstati
Поддержка
Поддержка
Сообщения: 3336
Стаж: 15 лет 1 месяц
Благодарил (а): 25 раз
Поблагодарили: 590 раз

Re: Аутентификация Oauth - Google

Сообщение Nekstati »

romeo_piter, возьмите [3.1][3.2] Авторизация через социальные сети для phpBB3.x, там без проблем Гугл работает.

А ещё лучше вот это: https://github.com/oneall/social-login-phpbb
Аватара пользователя
Татьяна5
Поддержка
Поддержка
Сообщения: 12425
Стаж: 12 лет 8 месяцев
Благодарил (а): 166 раз
Поблагодарили: 2477 раз

Re: Аутентификация Oauth - Google

Сообщение Татьяна5 »

romeo_piter писал(а): 25.09.2023 10:10 Но почему привязка не работает там, где должна работать?
Она должна работать после логина, в личном разделе. При регистрации по стандарту её нет
romeo_piter
phpBB 2.0.21
Сообщения: 1316
Стаж: 15 лет
Благодарил (а): 159 раз
Поблагодарили: 21 раз

Re: Аутентификация Oauth - Google

Сообщение romeo_piter »

Nekstati писал(а): 25.09.2023 13:59 romeo_piter, возьмите [3.1][3.2] Авторизация через социальные сети для phpBB3.x, там без проблем Гугл работает.
При попытке перейти на любую вкладку в админке кроме основных настроек выдает такую портянку:

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

Общая ошибка
SQL ERROR [ mysqli ]

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'ASC' at line 4 [1064]

SQL

SELECT group_id, group_name, group_type FROM phpbb_groups WHERE group_name NOT IN('ADMINISTRATORS', 'GLOBAL_MODERATORS', 'BOTS', 'GUESTS') GROUP BY group_id ASC

BACKTRACE

FILE: (not given by php)
LINE: (not given by php)
CALL: msg_handler()

FILE: [ROOT]/phpbb/db/driver/driver.php
LINE: 1023
CALL: trigger_error()

FILE: [ROOT]/phpbb/db/driver/mysqli.php
LINE: 202
CALL: phpbb\db\driver\driver->sql_error()

FILE: [ROOT]/phpbb/db/driver/factory.php
LINE: 345
CALL: phpbb\db\driver\mysqli->sql_query()

FILE: [ROOT]/ext/bb3mobi/social/acp/social_module.php
LINE: 452
CALL: phpbb\db\driver\factory->sql_query()

FILE: [ROOT]/includes/functions_acp.php
LINE: 359
CALL: bb3mobi\social\acp\social_module->group_select()

FILE: [ROOT]/ext/bb3mobi/social/acp/social_module.php
LINE: 423
CALL: build_cfg_template()

FILE: [ROOT]/includes/functions_module.php
LINE: 676
CALL: bb3mobi\social\acp\social_module->main()

FILE: [ROOT]/adm/index.php
LINE: 81
CALL: p_master->load_active()
Татьяна5 писал(а): 25.09.2023 14:52 Она должна работать после логина, в личном разделе. При регистрации по стандарту её нет
О том и речь, что привязка в личном разделе не работает. Работает только так, как я описал.

Отправлено спустя 7 минут 55 секунд:
Nekstati писал(а): 25.09.2023 13:59 А ещё лучше вот это: https://github.com/oneall/social-login-phpbb
А это требует какой-то внешний сервис как логинза.

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

To be able to use Social Login, you first of all have to create a free account at http://www.oneall.com.
Setup my free account | Create and/or view my API Credentials
Мне по сути нужен только гугл, меня бы устроил штатный вариант, если бы он был работоспособен...
Аватара пользователя
southklad
phpBB 3.1.0 RC2
Сообщения: 3232
Стаж: 12 лет 3 месяца
Благодарил (а): 704 раза
Поблагодарили: 152 раза

Re: Аутентификация Oauth - Google

Сообщение southklad »

romeo_piter, Заметил, что у вас не первое работоспособное расширение просто не ставиться, вам бы проверить настройки сервера и прочее.
Изображение
romeo_piter
phpBB 2.0.21
Сообщения: 1316
Стаж: 15 лет
Благодарил (а): 159 раз
Поблагодарили: 21 раз

Re: Аутентификация Oauth - Google

Сообщение romeo_piter »

southklad писал(а): 25.09.2023 18:31 Заметил, что у вас не первое работоспособное расширение просто не ставиться, вам бы проверить настройки сервера и прочее.
Не очень понял, о чем речь? Не работает только ватермарк по необъяснимым причинам.

Расширение то как бы установилось, общие настройки доступны, ошибка вываливается при попытке клика на любую соцсеть в админке.
Аватара пользователя
Nekstati
Поддержка
Поддержка
Сообщения: 3336
Стаж: 15 лет 1 месяц
Благодарил (а): 25 раз
Поблагодарили: 590 раз

Re: Аутентификация Oauth - Google

Сообщение Nekstati »

romeo_piter писал(а): 25.09.2023 18:28 А это требует какой-то внешний сервис как логинза.
Сервис бесплатный. Суть в том, что вы один раз на том сервисе настроите свои соцсети и больше не будете беспокоиться об изменении их API, сервис сам все изменения учтёт.
romeo_piter
phpBB 2.0.21
Сообщения: 1316
Стаж: 15 лет
Благодарил (а): 159 раз
Поблагодарили: 21 раз

Re: Аутентификация Oauth - Google

Сообщение romeo_piter »

Nekstati писал(а): 25.09.2023 18:53 Сервис бесплатный.
Сегодня да, сегодня он жив и работает, а завтра стал платным и /или заброшенным. Вдруг.
Поймите меня правильно. По сути то что мне нужно в теории есть в базе движка, просто почему-то не работает как нужно (нашел еще пару постов со схожими проблемами). А тут целое расширение, да ещё и с подтягиванием внешнего ресурса.
Аватара пользователя
Татьяна5
Поддержка
Поддержка
Сообщения: 12425
Стаж: 12 лет 8 месяцев
Благодарил (а): 166 раз
Поблагодарили: 2477 раз

Re: Аутентификация Oauth - Google

Сообщение Татьяна5 »

southklad писал(а): 25.09.2023 18:31 настройки сервера
В порядке там всё, но - при этом php 8.1
romeo_piter
phpBB 2.0.21
Сообщения: 1316
Стаж: 15 лет
Благодарил (а): 159 раз
Поблагодарили: 21 раз

Re: Аутентификация Oauth - Google

Сообщение romeo_piter »

Возвращаюсь к своему вопросу, т.к. из коробки функционал есть (это вроде как теперь стандартное умение движка), а работоспособности нет.
При попытке привязать учетку гугла из личного раздела гугл выдает:

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

Доступ заблокирован: это приложение отправило недопустимый запрос
Ошибка 400: redirect_uri_mismatch
При это привязка прекрасно срабатывает со страницы регистрации.
На странице регистрации при нажатии на кнопку Гугл движок перекидывает по ссылке:

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

ucp.php?mode=login_link&auth_provider=oauth&login_link_oauth_service=google
Текст видим такой:

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

Связать учетную запись внешнего сервиса с учётной записью конференции или создать новую.
Вы попытались войти с помощью учётной записи другого сервиса, которая пока не связана с учётной записью конференции. Необходимо связать данную учётную запись с существующей или создать новую учётную запись на конференции.
Ниже текста расположена форма входа. Вводим в нее актуальные данные, нас перекидывает к форме гугла (которая в этот момент не выдает никаких ошибок и корректно работает). Подтверждаем. Входим на форум. В личном разделе появляется привязка. Вход через гугл после этого прекрасно работает.

Вопрос. Почему не работает привязка через личный раздел? Тут есть те, у кого это работает корректно? Если да, то какие у вас прописаны Authorized redirect URIs в консоли гугла в Credentials?

Отправлено спустя 20 минут 3 секунды:
Немного разобрался. Привязка удалась благодаря этому мануалу, касательно Oauth: https://download.phpbb.com/pub/document ... tation.pdf
У меня заработало только после того, как я оставил в Credentials только две ссылки, которые указаны в мануале. Привязка происходит, всё работает, но в момент привязки вываливается ошибка:

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

[phpBB Debug] PHP Warning: in file [ROOT]/vendor/lusitanian/oauth/src/OAuth/Common/Http/Client/AbstractClient.php on line 70: OAuth/Common/Http/Client/AbstractClient::OAuth/Common/Http/Client/{closure}(): Argument #2 ($key) must be passed by reference, value given
Как от нее избавиться?
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 16367
Стаж: 17 лет 11 месяцев
Откуда: Красноярск
Благодарил (а): 521 раз
Поблагодарили: 1744 раза

Re: Аутентификация Oauth - Google

Сообщение rxu »

romeo_piter писал(а): 28.09.2023 2:06 Как от нее избавиться?
Только ручной правкой кода самой библиотеки.
В файле /vendor/lusitanian/oauth/src/OAuth/Common/Http/Client/AbstractClient.php функция normalizeHeaders должна выглядеть вот так.
Изображение
romeo_piter
phpBB 2.0.21
Сообщения: 1316
Стаж: 15 лет
Благодарил (а): 159 раз
Поблагодарили: 21 раз

Re: Аутентификация Oauth - Google

Сообщение romeo_piter »

Заменил функцию полностью. Ошибка сверху пропала. Вместо этого появилась ошибка в самом теле форума на желтом фоне

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

Произошла ошибка при обработке запроса OAuth.
Привязка работать перестала. (

Отправлено спустя 1 минуту 19 секунд:
У меня в файле до правки, работоспособная но с ошибкой функция выглядит так, указал точку на которую ругается (СТРОКА 70):

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


public function normalizeHeaders(&$headers)
    {
        // Normalize headers
        array_walk(
            $headers,
            function (&$val, &$key) {
                $key = ucfirst(strtolower($key));
                $val = ucfirst(strtolower($key)) . ': ' . $val;
  СТРОКА 70           }
        );
    }

Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 16367
Стаж: 17 лет 11 месяцев
Откуда: Красноярск
Благодарил (а): 521 раз
Поблагодарили: 1744 раза

Re: Аутентификация Oauth - Google

Сообщение rxu »

Тогда просто попробовать заменить function (&$val, &$key) на function (&$val, $key) (т.е. убрать & перед $key).
Изображение

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