Как подключить Mediawiki к пользовательской базе данных пользователей?

извините за титул, я не могу найти правильные слова для этого. Позвольте мне объяснить, что я хочу сделать:

У меня есть сайт и Wiki (последние Mediawiki). Вики закрыта, поэтому вам нужна учетная запись для чтения / записи в вики. Но когда пользователь входит на мой сайт, он должен автоматически войти в Вики, когда он приходит туда.

мой первый взгляд на пользовательскую таблицу MySQL mediawiki сделал меня невежественным: все сохраняется как двоичные данные, но в моей базе пользователя это открытый текст, за исключением пароля, конечно.

Я не знаю, как поступить?

2 ответов


вы в основном хотите иметь две вещи:

  • одна база данных учетной записи на вашем сайте, которая также используется из mediawiki.
  • автоматический вход в MediaWiki при входе пользователя на ваш сайт

Центральная база данных пользователей

Mediawiki имеет несколько расширений с подключением управления пользователями к другой базе данных, для пример:

вы должны взглянуть на ExtAuthDB, так как он должен быть достаточно настраиваемым для вас.

Единый Вход

Single sign on (SSO) в основном выполняется путем обмена файлами cookie между веб-приложениями. Чтобы это произошло, вам нужно иметь wiki в a поддомен вашей главной страницы, т. е. wiki.example.org когда ваш сайт находится на example.org.

на вашем сайте установите cookie для .example.org (обратите внимание на ведущую точку в домене cookie), поэтому она доступна для wiki.example.org тоже.

содержимое cookies может быть либо полноценным файлом cookie mediawiki (который вам нужно создать на вашем сайте), либо файлом cookie с соответствующей информацией о пользователе, который читает и регистрирует пользователь в собственном расширении wiki. Я предлагаю посмотреть, как Phpbb_Single_Sign-On реализовано и сделать то же самое для вашего сайта.


вы можете позвонить MediaWiki API: Login на вашем сайте войти в рутину и API: выход при выходе из системы Укажите имя пользователя и пароль, используемые на вашем сайте и Вики одинаковы.