Аутентификация Oauth - Google
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Мини [FAQ] по phpBB 3.1.x/3.2.x | FAQ | Как задавать вопросы | Как устанавливать расширения
Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение
).
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Мини [FAQ] по phpBB 3.1.x/3.2.x | FAQ | Как задавать вопросы | Как устанавливать расширения
Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение

-
- phpBB 1.4.1
- Сообщения: 42
- Стаж: 4 года
- Благодарил (а): 3 раза
Аутентификация Oauth - Google
Ребята помогите! Уже час ищу в интернете инфу, как подключить аутентификацию через Гугл. Есть ли какая нибудь подробная инструкция, как это сделать? Я как-то подключил это услугу( горе по полам), но в итоге когда я нажимаю "Вход через Google", у меня выскакивает следующее сообщение: "Вы попытались войти с помощью учётной записи другого сервиса, которая пока не связана с учётной записью конференции. Необходимо связать данную учётную запись с существующей или создать новую учётную запись на конференции." Что делать?
-
- Поддержка
- Сообщения: 12751
- Стаж: 13 лет 8 месяцев
- Благодарил (а): 159 раз
- Поблагодарили: 2276 раз
Re: Аутентификация Oauth - Google
По стандарту регистрации через гугл нет, только вход
Чтобы можно было войти надо сначала привязать учётную запись в личном разделе
Чтобы можно было войти надо сначала привязать учётную запись в личном разделе
-
- phpBB 2.0.22
- Сообщения: 1369
- Стаж: 16 лет
- Благодарил (а): 163 раза
- Поблагодарили: 20 раз
Re: Аутентификация Oauth - Google
Есть проблема с настройкой аутентификации.
Получаю такое:
Какую ссылку указать в консоли: "Authorized redirect URIs"? Указывал там то что ниже и то что в описании ошибки, но гугл явно что-то другое хочет, судя по описанию, но что?
Пишу это (с просторов сети):
Не работает.
Отправлено спустя 1 час 12 минут 55 секунд:
Условно победил, но какая-то чудная фигня. Привязка из личного раздела не удается. Хотя именно этот способ должен работать корректно: заходим под обычной учеткой, идем в профиль. Привязываем. Пользуемся. Так не работает.
Работает так. Идем в форму регистрации, жмем на кнопку (причем ссылка в личном разделе такая же один в один)
После этого нас перекидывает в форму входа, где написано, что нет привязки, для реализации надо зайти под своей учеткой. Заходим. Работает. В личном разделе видно привязку.
Но почему привязка не работает там, где должна работать?
Получаю такое:
Код: Выделить всё
Доступ заблокирован: это приложение отправило недопустимый запрос
Ошибка 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
Код: Выделить всё
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&login=external&oauth_service=google" class="button2">Google</a>
Но почему привязка не работает там, где должна работать?
-
- Поддержка
- Сообщения: 3336
- Стаж: 16 лет 1 месяц
- Благодарил (а): 17 раз
- Поблагодарили: 561 раз
Re: Аутентификация Oauth - Google
romeo_piter, возьмите [3.1][3.2] Авторизация через социальные сети для phpBB3.x, там без проблем Гугл работает.
А ещё лучше вот это: https://github.com/oneall/social-login-phpbb
А ещё лучше вот это: https://github.com/oneall/social-login-phpbb
-
- Поддержка
- Сообщения: 12751
- Стаж: 13 лет 8 месяцев
- Благодарил (а): 159 раз
- Поблагодарили: 2276 раз
Re: Аутентификация Oauth - Google
Она должна работать после логина, в личном разделе. При регистрации по стандарту её нет
-
- phpBB 2.0.22
- Сообщения: 1369
- Стаж: 16 лет
- Благодарил (а): 163 раза
- Поблагодарили: 20 раз
Re: Аутентификация Oauth - Google
При попытке перейти на любую вкладку в админке кроме основных настроек выдает такую портянку: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
-
- phpBB 3.1.0 RC3
- Сообщения: 3343
- Стаж: 13 лет 3 месяца
- Благодарил (а): 675 раз
- Поблагодарили: 164 раза
Re: Аутентификация Oauth - Google
romeo_piter, Заметил, что у вас не первое работоспособное расширение просто не ставиться, вам бы проверить настройки сервера и прочее.
-
- phpBB 2.0.22
- Сообщения: 1369
- Стаж: 16 лет
- Благодарил (а): 163 раза
- Поблагодарили: 20 раз
Re: Аутентификация Oauth - Google
Не очень понял, о чем речь? Не работает только ватермарк по необъяснимым причинам.southklad писал(а): 25.09.2023 18:31 Заметил, что у вас не первое работоспособное расширение просто не ставиться, вам бы проверить настройки сервера и прочее.
Расширение то как бы установилось, общие настройки доступны, ошибка вываливается при попытке клика на любую соцсеть в админке.
-
- Поддержка
- Сообщения: 3336
- Стаж: 16 лет 1 месяц
- Благодарил (а): 17 раз
- Поблагодарили: 561 раз
Re: Аутентификация Oauth - Google
Сервис бесплатный. Суть в том, что вы один раз на том сервисе настроите свои соцсети и больше не будете беспокоиться об изменении их API, сервис сам все изменения учтёт.
-
- phpBB 2.0.22
- Сообщения: 1369
- Стаж: 16 лет
- Благодарил (а): 163 раза
- Поблагодарили: 20 раз
Re: Аутентификация Oauth - Google
Сегодня да, сегодня он жив и работает, а завтра стал платным и /или заброшенным. Вдруг.
Поймите меня правильно. По сути то что мне нужно в теории есть в базе движка, просто почему-то не работает как нужно (нашел еще пару постов со схожими проблемами). А тут целое расширение, да ещё и с подтягиванием внешнего ресурса.
-
- Поддержка
- Сообщения: 12751
- Стаж: 13 лет 8 месяцев
- Благодарил (а): 159 раз
- Поблагодарили: 2276 раз
-
- phpBB 2.0.22
- Сообщения: 1369
- Стаж: 16 лет
- Благодарил (а): 163 раза
- Поблагодарили: 20 раз
Re: Аутентификация Oauth - Google
Возвращаюсь к своему вопросу, т.к. из коробки функционал есть (это вроде как теперь стандартное умение движка), а работоспособности нет.
При попытке привязать учетку гугла из личного раздела гугл выдает:
При это привязка прекрасно срабатывает со страницы регистрации.
На странице регистрации при нажатии на кнопку Гугл движок перекидывает по ссылке:
Текст видим такой:
Ниже текста расположена форма входа. Вводим в нее актуальные данные, нас перекидывает к форме гугла (которая в этот момент не выдает никаких ошибок и корректно работает). Подтверждаем. Входим на форум. В личном разделе появляется привязка. Вход через гугл после этого прекрасно работает.
Вопрос. Почему не работает привязка через личный раздел? Тут есть те, у кого это работает корректно? Если да, то какие у вас прописаны Authorized redirect URIs в консоли гугла в Credentials?
Отправлено спустя 20 минут 3 секунды:
Немного разобрался. Привязка удалась благодаря этому мануалу, касательно Oauth: https://download.phpbb.com/pub/document ... tation.pdf
У меня заработало только после того, как я оставил в Credentials только две ссылки, которые указаны в мануале. Привязка происходит, всё работает, но в момент привязки вываливается ошибка:
Как от нее избавиться?
При попытке привязать учетку гугла из личного раздела гугл выдает:
Код: Выделить всё
Доступ заблокирован: это приложение отправило недопустимый запрос
Ошибка 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
-
- phpBB Guru
- Сообщения: 16947
- Стаж: 18 лет 11 месяцев
- Откуда: Красноярск
- Благодарил (а): 549 раз
- Поблагодарили: 1700 раз
Re: Аутентификация Oauth - Google
Только ручной правкой кода самой библиотеки.
В файле
/vendor/lusitanian/oauth/src/OAuth/Common/Http/Client/AbstractClient.php
функция normalizeHeaders
должна выглядеть вот так.-
- phpBB 2.0.22
- Сообщения: 1369
- Стаж: 16 лет
- Благодарил (а): 163 раза
- Поблагодарили: 20 раз
Re: Аутентификация Oauth - Google
Заменил функцию полностью. Ошибка сверху пропала. Вместо этого появилась ошибка в самом теле форума на желтом фоне
Привязка работать перестала. (
Отправлено спустя 1 минуту 19 секунд:
У меня в файле до правки, работоспособная но с ошибкой функция выглядит так, указал точку на которую ругается (СТРОКА 70):
Код: Выделить всё
Произошла ошибка при обработке запроса 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 }
);
}
-
- phpBB Guru
- Сообщения: 16947
- Стаж: 18 лет 11 месяцев
- Откуда: Красноярск
- Благодарил (а): 549 раз
- Поблагодарили: 1700 раз
Re: Аутентификация Oauth - Google
Тогда просто попробовать заменить
function (&$val, &$key)
на function (&$val, $key)
(т.е. убрать &
перед $key
).