Как я могу интегрировать логины пользователей с моего сайта в phpBB?
Вопрос
Мне нужна помощь с вопросом, который, вероятно, является новичком, касающимся модификации phpBB.
У меня есть целая система, разработанная на PHP, и я хотел бы интегрировать phpBB, чтобы люди могли беспрепятственно переходить на форумы и публиковать сообщения, не входя в систему повторно.
Теперь, к сожалению, использовать таблицу пользователей phpBB в качестве таблицы пользователей для моей системы (и регистрировать людей в phpBB, а не на моем веб-сайте) невозможно (переделка нашей системы потребует больше работы, чем создание собственного базового форума). .
Я предполагаю, что смогу заставить phpBB поверить, что определенный идентификатор пользователя вошел в систему, однако этот пользователь не будет существовать в таблице пользователей phpBB (что, как я предполагаю, приведет к ошибкам почти везде) .
Все руководства и сообщения на форумах, которые я смог найти, подразумевали использование phpBB в качестве основного.Я не нашел ничего, что можно было бы сделать наоборот.
Я предполагаю, что единственный возможный способ решить эту проблему — относительно синхронизировать обе таблицы.
Теперь, при условии, что я могу синхронизировать обе таблицы пользователей, как лучше всего интегрировать оба сайта, сохранив таблицу входа и пользователей моего сайта в качестве «основных»?
Кроме того, есть ли что-то особенное, что мне следует учитывать при создании записей в таблице пользователей phpBB?Или это относительно просто выяснить?В какие таблицы мне следует писать, если их несколько?
Решение
Это старый вопрос, поэтому я уверен, что вы уже что-то решили, но если вам нужно что-то реорганизовать в будущем, это вполне возможно с плагинами аутентификации в phpBB3:
http://wiki.phpbb.com/Authentication_plugins
Сейчас я работаю над тем, где phpBB является " вторичным " система, и она идет довольно хорошо.
Другие советы
Я только что поработал над этой задачей сегодня, после того, как в ходе некоторых исследований был реализован плагин аутентификации . Вот хороший пример. Как заставить phpBB принимать сеансы Django
Раньше я интегрировал phpBB с сайтом, однако, как вы сказали, я использовал таблицу входа в систему/пользователей phpBB в качестве основной.Поскольку phpBB является довольно продвинутым программным обеспечением для форумов, полная смена пользователя и системы входа в систему займет довольно много времени.
Когда мне пришлось использовать логин сайта в качестве основного, я использовал ПанББ.Модифицировать PunBB было намного проще.
Если вам абсолютно необходимо использовать свой собственный логин в качестве основного и phpBB, то я согласен с вами в том, что самый простой способ — синхронизировать таблицы и вызывать оба сценария входа, когда кто-то входит в систему.
Когда вы вставляете данные в phpBB, таблица пользователей довольно проста.Каждая запись содержит основную информацию о пользователе, и если у вас есть настраиваемые поля для профилей пользователей, они переходят в profile_fields
и profile_fields_data
столы.
Одна непростая вещь заключается в том, как phpBB шифрует пароли пользователей.Я думаю, вам нужно использовать функцию phpBB под названием phpbb_hash($password)
сделать это.Это объявлено в файлеphpbb/includes/functions.php
Код входа в phpBB см. в файле funciton login_box. phpbb/includes/functions.php
Вы можете использовать ниже для входа в phpBB:
$result=$auth->login($username, $password);
if ($result['status'] == LOGIN_SUCCESS) {
echo "You're logged in";
} else {
echo $user->lang[$result['error_msg']];
}