Как я могу интегрировать логины пользователей с моего сайта в phpBB?

Мне нужна помощь с вопросом, который, вероятно, является вопросом новичков в плане изменения phpBB.

У меня есть целая система, разработанная на PHP, и я хотел бы интегрировать phpBB, чтобы люди могли легко заходить на форумы и публиковать сообщения без повторного входа в систему.

Теперь использование таблицы пользователей phpBB в качестве таблицы пользователей для моей системы (и регистрация людей в phpBB, а не на моем веб-сайте), к сожалению, невозможно (для переделки нашей системы потребуется больше работы, чем для создания нашего собственного базового форума) .
Я предполагаю, что смогу взломать свой способ заставить phpBB поверить, что определенный идентификатор пользователя вошел в систему, однако этот пользователь не будет существовать в таблице пользователей phpBB (что, как я предполагаю, вызовет ошибку почти везде).

Все руководства и сообщения на форумах, которые я мог найти, подразумевали использование phpBB в качестве основного. Я не мог найти ничего, чтобы сделать это наоборот.

Я предполагаю, что единственный возможный способ решить эту проблему - относительно синхронизировать обе таблицы.

Теперь, при условии, что я могу синхронизировать обе таблицы пользователей, как лучше всего интегрировать оба сайта, сохранив логин моего сайта и таблицу пользователей в качестве «основных»?
Кроме того, есть ли что-то конкретное, что я должен сохранить не возражаете при создании записей в таблице пользователей phpBB? Или это относительно просто выяснить? В какие таблицы мне писать, если их больше одной?


person Daniel Magliola    schedule 11.11.2008    source источник


Ответы (4)


Это старый вопрос, поэтому я уверен, что к настоящему времени вы что-то разработали, но если вам понадобится реорганизовать что-то в будущем, это вполне возможно с помощью плагинов аутентификации в phpBB3:

http://wiki.phpbb.com/Authentication_plugins

Сейчас я работаю над одной, где phpBB является «второстепенной» системой, и все идет довольно хорошо.

person Brock Boland    schedule 01.02.2010
comment
Я перешел по ссылке, которую вы разместили, кажется, мне просто нужно создать файл include / auth / auth_myauth.php и иметь метод в файле, скажем, login_myauth ($ username, $ password), возвращающий массив. Когда я это сделал, я не смог установить его в ACP, какие-нибудь предложения? - person steff_bdh; 12.05.2016
comment
Вам лучше разместить новый вопрос на StackOverflow. Я не использовал phpBB с тех пор, как разместил здесь шесть лет назад, и эта вики-страница, на которую я ссылался, не обновлялась с октября 2011 года. Если вы не поддерживаете старую версию phpBB, она, вероятно, устарела. - person Brock Boland; 15.05.2016

Я как раз работал над этой задачей сегодня, после некоторого расследования, в котором был реализован плагин аутентификации Вот хороший пример Заставить phpBB принимать сеансы Django

person Maria S    schedule 17.04.2009

Раньше я интегрировал phpBB с сайтом, однако, как вы сказали, я использовал систему входа в систему / таблицу пользователей phpBB в качестве основной. Поскольку phpBB - довольно продвинутое программное обеспечение для форумов, полное изменение пользователя и системы входа в него займет довольно много времени.

Когда мне приходилось использовать логин сайта в качестве основного, я использовал PunBB. Изменить PunBB было намного проще.

Если вам абсолютно необходимо использовать свой собственный логин в качестве основного и phpBB, то я согласен с вами в том, что проще всего будет синхронизировать таблицы и вызывать оба сценария входа, когда кто-то входит в систему.

Когда вы вставляете данные в phpBB, таблица пользователей довольно проста. Каждая запись содержит основную информацию для пользователя, и если у вас есть настраиваемые поля для профилей пользователей, они попадают в таблицы profile_fields и profile_fields_data.

Одна непростая вещь - это то, как phpBB шифрует пароли пользователей. Я думаю, для этого вам нужно использовать функцию phpBB под названием phpbb_hash($password). Он объявлен в файле phpbb/includes/functions.php

Код для входа в phpBB см. В разделе "Поле для входа в систему" в файле phpbb/includes/functions.php.

person Murat Ayfer    schedule 11.11.2008

Вы можете использовать следующую команду для входа в phpBB:

$result=$auth->login($username, $password);

if ($result['status'] == LOGIN_SUCCESS) {

  echo "You're logged in";

} else {

  echo $user->lang[$result['error_msg']];

}
person Community    schedule 08.01.2009
comment
Это предполагает, что на сайте используется таблица пользователей phpBB. - person Shinhan; 03.07.2012