Кросс-доменная авторизация Livestreet и PhpBBex

Ранее созданное решение (http://altocms.ru/937.html) сделал теперь и для Livestreet.

Задача

Изначально был проект на phpBB(ex), соответственно БД с пользователями, паролями, прочими данными. Теперь проекту в дополнение к форуму необходио создать ещё и главную страницу. Вроде бы задача не сложная, но тем не менее в подобных случаях зачастую решается либо переносом попыткой превратить одного в другое, либо мостообразными костылями.

Мне было необходимо:
— Сохранить БД пользователей (прежде всего пароли)
— Не сливать системы друг с другом, каждая должна иметь возможность продолжить существование независимо от второй.
— Иметь возможность в будущем замены/переноса функционала с одной системы на другую с сохранением данных
— При этом всём провести минимальные вмешательства в код обоих систем
— Иметь кросс-доменную авторизацию

Решение

1. Приведение механизма генерации хешей к единому виду
Так как исторически phpBB был первее и соответственно пользователи все в БД форума, то в Livestreet меняем способ генерации хеша. Добавляем минимально необходимые функции из кода phpBB и производим изменения в экшенах аутентификации и смены пароля через пользовательский профайл.

2. Приведение механизма сессии phpBB к стандартному PHP
Видимо также исторически сложилось, что phpBB(ex) сессию делает хоть и на основе куки, но своим костылём и стандартным php session_id() в отличии от Livestreet не пользуется. Мы не будем программистами, и приведём сессионный механизм форума к стандартному PHP.

3. Настройка cookies
Если системы находятся на разных доменах третьего уровня, то куки необходимо настроить на корневой домен второго уровня, чтобы каждая из систем могла сгенерить ключевую авторизационную куку для соседа. Параллельно в момент авторизации мы кладём user_id каждой из систем в php сессию и добавляем проверку соответствия ключевой куки и данных сессии.

4. Репликация данных в БД
Вешаем триггера на таблицы сессий и данных пользователей, обеспечивая репликацию данных между системами. В Livestreet минимально приходится добавить поле в таблицу _session. В идеале по максимуму добавляются поле в каждой из таблиц участвующих в репликации для защиты от петель.

Результат
В результате получаем плавную репликацию пользовательских данных (при желании репликацию пользовательских данных можно провести полностью), кросс-доменную авторизацию (логин в одной системе даёт возможность попасть во вторую в уже авторизованном состоянии), минимальную нагрузку на HW (триггера и хранимые процедуры отрабатывают быстрее на счёт отсутствия кода php), минимальное вмешательство в обе системы (6 файлов в LS и 2 в phpBBex, 11Кб SQL кода).

В будущем можно как переносить, так и дублировать функционал между системами, обеспечивая возможность сравнения и плавного перехода с одного на другой (например перевести личку с форума на LS).

Проблемы с плагином autoforum, который объединяет LS и phpbb

Всем привет. У меня такая проблема. Есть 2 группы: прохожие и пользователи. Нужно чтобы при регистрации пользователь попадал в группу «прохожие» для этого в файле autoforum.class.php изменил $user_row['group_id'] = 2; изменил на $user_row['group_id'] = 7; (прохожие 7ая группа, пользователи 2ая). Но вот порадокс, при использованной опции «активация пользователей», в админке ЛС, новый пользователь попадает в группу «пользователи», а при отключенной опции в группу «прохожие». Как сделать чтобы новый пользователь попадал в группу «прохожие», но прим этом использовалась опция «активация пользователей».

Как объеденить регистрацию форума и сайта?

Здравствуйте! У меня возникла проблема. Стоит движок ливстрит, ещё есть форумп phpbb. Как сделать так чтобы не пришлось отдельно регистрироваться и на форуме и на сайте? Как можно объеденить регистрации?

Интеграция LS с форумом phpBB 3.0.x

Что делает плагин:
При авторизации на LS в случае успеха пытается залогиниться на форум через базу форума, если такого юзера нет — добавляет его.
При авторизации на форуме ищет юзера в базе форума, если не находит пытается залогиниться на LS через базу LS, если авторизация прошла добавляет в базу форума и логинится, при добавлении в форум мыло берется из профиля юзера.

a еще...

Плагин сквозной авторизации из vbulletin и phpbb

Требуется плагин, который позволяет авторизировать юзера в LS, используя базу авторизации vbulletin или phpbb.

Плагин должен уметь обращаться и к внешней базе тоже

Сообщите стоимость и сроки, связь через личку

Вывод последних тем с форума phpbb3 в отдельный блог

Собственно, сабж.
Хотелось бы увидеть плагин, который выводил бы в отдельный блог последние темы с форума, с ссылками на них, и автором последней записи. Как это сделано в многочисленных плагинах для joomla.
Кто возьмется?

Разработка плагина авторизации Loginza (JS виджет для OpenID, Вконтакте, Twitter, Facebook и др.)

Друзья, хочу предложить Вам разработать плагин авторизации с использованием виджета Loginza.

Данный виджет уже используется в плагинах для Wordpress (http://loginza.ru/wp-plugin), Joomla (http://vjoomla.ru/blogs/item/277-loginza.html), Drupal (http://docs.drupal.ru/node/45330), phpBB (http://loginza.ru/phpbb-plugin), но такого плагина для LiveStreet я ненашел.

О преимуществах данного виджета, далее.

Читать дальше →