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

Внешняя аутентификация и переход на форум

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

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

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
Аватара пользователя
splinty
phpBB 1.4.2
Сообщения: 55
Стаж: 13 лет 10 месяцев
Благодарил (а): 15 раз

Внешняя аутентификация и переход на форум

Сообщение splinty »

Братцы, примеров по внешней аутентификации предостаточно, конечно. Я так и делал в 3.0

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

 $user->session_begin();
 $auth->acl($user->data);
 $user->setup('ucp');
 $login = $auth->login($username, $password, $autologin);
Это прекрасно работает, только дальше хочется отправить пользователя на форум

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

  header('Content-type: text/html; charset=UTF-8');
  header('Cache-Control: private, no-cache="set-cookie"');
  header('Expires: 0');
  header('Pragma: no-cache');
  header('Location:  /phpbb3/viewforum.php?f=62');
И вот для 3.2 это уже не работает. Пользователь оказывается на страничке ввода пароля... Подскажите, пожалуйста, что там такого стряслось в 3.2 с этим? Видел упоминание $user->setup('viewforum');, но от этого толку не прибыло...

Отправлено спустя 22 минуты 56 секунд:
redirect(append_sid($url)) вроде как работает...
С почтением, Саша.
Аватара пользователя
LavIgor
Former team member
Сообщения: 3468
Стаж: 9 лет 11 месяцев
Благодарил (а): 41 раз
Поблагодарили: 932 раза

Re: Внешняя аутентификация и переход на форум

Сообщение LavIgor »

splinty, с настройками cookies всё в порядке?
Аватара пользователя
splinty
phpBB 1.4.2
Сообщения: 55
Стаж: 13 лет 10 месяцев
Благодарил (а): 15 раз

Re: Внешняя аутентификация и переход на форум

Сообщение splinty »

Так, а что может быть неправильным там? Четыре настройки: домен, имя, путь, https, да предупреждение...
С почтением, Саша.
Аватара пользователя
LavIgor
Former team member
Сообщения: 3468
Стаж: 9 лет 11 месяцев
Благодарил (а): 41 раз
Поблагодарили: 932 раза

Re: Внешняя аутентификация и переход на форум

Сообщение LavIgor »

splinty, вот домен и путь могут быть неправильными.
Тем более если у Вас форум и сайт в разных директориях, они будут устанавливать разные cookies при разных настройках.
И cookies, установленные сайтом, форум видеть не будет, а ведь авторизация проводится с их помощью.

Яркий индикатор проблемы - что у Вас ссылка с sid работает.

Можете, конечно, sid и в заголовок Location добавить, как вариант. Но лучше всё же задать корректные настройки, если у Вас единая авторизация на сайте и форуме.
Аватара пользователя
splinty
phpBB 1.4.2
Сообщения: 55
Стаж: 13 лет 10 месяцев
Благодарил (а): 15 раз

Re: Внешняя аутентификация и переход на форум

Сообщение splinty »

Стыдно признаться, братцы, но дело всё $request->enable_super_globals();
Ну и в обработке ошибок моего кода, которое скрывало ошибку по проблеме отключенных глобалов, так что все $_REQUEST тупо возвращали пустое.

В итоге, вот в 3.2 работает всё тот же код:

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

 $request->enable_super_globals(); 
 $username = $_REQUEST['p_oblako_login'];
 $password = $_REQUEST['p_password'];

 $user->session_begin();
 $auth->acl($user->data);
 $user->setup('ucp');

 $login = array();
 $login = $auth->login($username, $password, false);
 if (!empty($login) && $login['status'] == LOGIN_SUCCESS) {redirect('/phpbb3/');}
С почтением, Саша.
Ответить

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