Как я могу интегрировать логины пользователей со своего сайта в phpBB? - PullRequest
16 голосов
/ 11 ноября 2008

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

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

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

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

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

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

Ответы [ 4 ]

11 голосов
/ 01 февраля 2010

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

http://wiki.phpbb.com/Authentication_plugins

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

7 голосов
/ 17 апреля 2009

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

6 голосов
/ 12 ноября 2008

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

Когда мне приходилось использовать логин сайта в качестве основного, я использовал PunBB . Модифицировать 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

.
2 голосов
/ 08 января 2009

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

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

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

  echo "You're logged in";

} else {

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

}
...