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

Самый простой способ - создать оболочку MEX, которая хранит экземпляр объекта класса, и отправить вызов этому двоичному файлу MEX. Я создал библиотеку для тех, кто пытается создать MEX-оболочку на C ++.

https://github.com/kyamagu/mexplus

быстрый фрагмент.

// C++ class to be wrapped.
class Database;
// Instance session storage.
template class mexplus::Session;
// Constructor.
MEX_DEFINE(new) (int nlhs, mxArray* plhs[],
                 int nrhs, const mxArray* prhs[]) {
  InputArguments input(nrhs, prhs, 1);
  OutputArguments output(nlhs, plhs, 1);
  output.set(0, Session::create(
      new Database(input.get(0))));
}
// Destructor.
MEX_DEFINE(delete) (int nlhs, mxArray* plhs[],
                    int nrhs, const mxArray* prhs[]) {
  InputArguments input(nrhs, prhs, 1);
  OutputArguments output(nlhs, plhs, 0);
  Session::destroy(input.get(0));
}
// Member method.
MEX_DEFINE(query) (int nlhs, mxArray* plhs[],
                   int nrhs, const mxArray* prhs[]) {
  InputArguments input(nrhs, prhs, 2);
  OutputArguments output(nlhs, plhs, 1);
  const Database& database = Session::getConst(input.get(0));
  output.set(0, database.query(input.get(1)));
}
// And so on...
MEX_DISPATCH

16
задан John Topley 11 November 2008 в 15:38
поделиться

4 ответа

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

http://wiki.phpbb.com/Authentication_plugins

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

11
ответ дан 30 November 2019 в 21:29
поделиться

Я интегрировал 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

6
ответ дан 30 November 2019 в 21:29
поделиться

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

7
ответ дан 30 November 2019 в 21:29
поделиться

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

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

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

  echo "You're logged in";

} else {

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

}
2
ответ дан 30 November 2019 в 21:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: