Уважаемые пользователи!
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.0.x. Здесь можно попросить помощи в разработке у коллег.
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
_Дмитрий_
phpBB 1.2.1
Сообщения: 24
Стаж: 10 лет 4 месяца
Благодарил (а): 2 раза

Как программно залогинить пользователя?

Сообщение _Дмитрий_ »

Прошу прощения, если вопрос слишком глупый, но пока не смог найти ответа.
Как сделать чтобы пользователь (известно user_id) стал залогиненым без ввода пароля БД?

Смысл в чем: хочу прикрутить внешнюю авторизацию. Пользователь нажимает кнопку войти через ВКонтакте. Далее id вконтакта, имя и хеш получаю, авторизацию проверяю, потом проверяю существование пользователя с этим вконтакте id (дополнительное поле), если нет, то пользователя создаю. Пока всё нормально. А что дальше?

То есть уже всё проверено, и мы уверены, что пользователь с таким-то именем и ID имеет право быть залогиненым. А как его сделать залогиненым?
_Дмитрий_
phpBB 1.2.1
Сообщения: 24
Стаж: 10 лет 4 месяца
Благодарил (а): 2 раза

Re: Как программно залогинить пользователя?

Сообщение _Дмитрий_ »

Благодарю за ответ, но не совсем то, скорее даже совсем не то... Насколько я понял там в функцию login передается логин/пароль для обычной авторизации через БД. Задача состоит в другом: мы уже идентифицировали пользователя (какими-то другими средствами) а теперь надо ему открыть сессию, выставить необходимые куки (или что еще нужно) чтобы он получил свои права и стал залогиненым без дальнейшей проверки пароля через БД. Наверняка в есть какая-то штатная функция. Типа проверили авторизацию (логин/пароль) и если OK - то залогинили. Вот, собственно вторая часть интересует (первая уже реализована).
Аватара пользователя
Татьяна5
Поддержка
Поддержка
Сообщения: 12372
Стаж: 12 лет 7 месяцев
Благодарил (а): 223 раза
Поблагодарили: 3517 раз
Контактная информация:

Re: Как программно залогинить пользователя?

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

Если без пароля - includes/auth.php, функция login со строки if ($login['status'] == LOGIN_SUCCESS)
_Дмитрий_
phpBB 1.2.1
Сообщения: 24
Стаж: 10 лет 4 месяца
Благодарил (а): 2 раза

Re: Как программно залогинить пользователя?

Сообщение _Дмитрий_ »

Спасибо, я уже целый модуль авториции сделал в includes/auth, который авторизует без пароля. И работает. Я только не могу понять как вызывать авторизацию из своего скрипта (на сервере), так чтобы указать нужные ID, или username (с этим разобрался) и пользователь стал авторизованым (на своей стороне в браузере после обращения к скрипту).
Аватара пользователя
Татьяна5
Поддержка
Поддержка
Сообщения: 12372
Стаж: 12 лет 7 месяцев
Благодарил (а): 223 раза
Поблагодарили: 3517 раз
Контактная информация:

Re: Как программно залогинить пользователя?

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

Функцией, если нажата кнопка. В параметрах функции передать user_id
Всё аналогично функции login в includes/auth.php
_Дмитрий_
phpBB 1.2.1
Сообщения: 24
Стаж: 10 лет 4 месяца
Благодарил (а): 2 раза

Re: Как программно залогинить пользователя?

Сообщение _Дмитрий_ »

Спасибо, наконец разобрался. У меня домен куков был неправильно указан, поэтому и авторизации не получалось, а думал, что всё неправильно делаю :)
Закрыто

Вернуться в «Для авторов (phpBB 3.0.x)»