Интеграция системы авторизации CMS с vBulletin

Антон Попов

Новичок
Интеграция системы авторизации CMS с vBulletin

Никто не знает ресурсов или может кто-нибудь пробовал осуществить интеграцию механизмов внешней авторизации с форумом vBulletin? То есть когда человек регистрируется, например, в системе управления контентом и запись об этом пользователе дублируется в форум, но это сделать достаточно просто. А вот как сделать сквозную авторизацию, то есть когда авторизация в CMS приводит автоматически к авторизации в форуме. Я такое делал для phpBB, когда информация о сессии создается в одной из таблиц phpBB и правильные куки генерируются, а для vBulletin аналогичной фичи найти не смог.

Варианты с изменением кода vBulletin не предлагать.
 

white phoenix

Новичок
Посмотри в login.php что куда записывается при авторизации, и сделай тоже самое в CMS.
 

baev

‹°°¬•
Команда форума
Антон Попов, я делал именно с изменением кода vBulletin.
Да, по-моему, иначе и не получится — Вам же нужно чтобы при регистрации на форуме пользователь «автоматом» регистрировался в CMS. Как Вы это без изменения кода vBulletin сделаете?
 

Антон Попов

Новичок
Вам же нужно чтобы при регистрации на форуме пользователь «автоматом» регистрировался в CMS. Как Вы это без изменения кода vBulletin сделаете?
Нет, мне как раз нужно наоборот, чтобы регистрация в CMS приводила к регистрации в форуме, а авторизация в CMS приводила к авторизации в форуме.

-~{}~ 28.12.05 17:45:

Автор оригинала: amorfis
Лицензия или соглашение запрещает это делать?
Нет, но потом будет много мороки при обновлении на новую версию, придется откладывать из-за нехватки времени и получить риск взлома...

Автор оригинала: white phoenix
baev
Импорт из одной таблицы в другую или хранение в общей таблице.
Импорт из одной в другую. Но вот каким образом хранятся там сессии пользователей? Достаточно ли сгенерировать куки, или еще надо в таблицах что-то править?
 

zarus

Хитрожопый макак
Ну так в чем проблема? Посмотри, как регистрируется и авторизуется пользователь в самой vBulletin и сделай то же самое у себя.
 

amorfis

я стараюсь
Не думаю, что будет много мороки. Просто к этому вопросу необходимо подойти не с принципом "Лишь бы работало!", а более продумано. Но нам тут конечно легко рассуждать, а перед тобой стоит вполне конкретная задача, которая требует решения.
 

Антон Попов

Новичок
Автор оригинала: zarus
Ну так в чем проблема? Посмотри, как регистрируется и авторизуется пользователь в самой vBulletin и сделай то же самое у себя.
Просто, чтобы сделать такое грамотно в phpBB потребовалось больше сотни строк кода и пришлось обходить некоторые грабли. Поэтому я собственно и интересуюсь.
Кроме того, процедура авторизации находится не только в login.php, а и в других файлах и не всегда понятно каким образом что с чем взаимодействует и какой флаг и где надо поставить, чтобы ничем пользователя не обидеть :).
 

zarus

Хитрожопый макак
Ну вот, собственно, надо просто сидеть и копать код. Потому что сам себе создал проблему - "не хочу менять код vB"... А что по этому поводу пишет Гугл?
 

Антон Попов

Новичок
Автор оригинала: zarus
Ну вот, собственно, надо просто сидеть и копать код. Потому что сам себе создал проблему - "не хочу менять код vB"... А что по этому поводу пишет Гугл?
А вот в гугле мне еще удача не улыбнулась, как и на форумах vbulletin.org и vbulletin.com, но будем копать :)
 

Panchous

Павел
для авторизации на форуме достаточно выставить нужные куки - копай исходник
 

baev

‹°°¬•
Команда форума
У «бюллютеня» очень «навороченная» системы авторизации и управления пользователями, поэтому лично мне было проще «пристегнуть» CMS к форуму, а не наоборот.

Использовать общие таблицы, общую систему авторизации — это лишняя работа, а я ленивый... Нет смысла менять уже готовую авторизацию форума или CMS. Достаточно того, что при регистрации пользователь регистрируется и там и там.

А чтоб при регистрации на форуме пользователь был зарегистрирован в CMS, нужно лезть в код форума. Можно, конечно, вообще отключить регистрацию на форуме, но тогда придётся весь отключенный механизм регистрации переносить в CMS. Опять же, по-моему, только лишний гимор. Ну и: управление пользователями. Либо Вы вообще систему vBulletin не используете, либо — нужно править код, чтоб, например, при удалении пользователя из форума шло удаление и из CMS.
 

Антон Попов

Новичок
Автор оригинала: baev
У «бюллютеня» очень «навороченная» системы авторизации и управления пользователями, поэтому лично мне было проще «пристегнуть» CMS к форуму, а не наоборот.

Использовать общие таблицы, общую систему авторизации — это лишняя работа, а я ленивый... Нет смысла менять уже готовую авторизацию форума или CMS. Достаточно того, что при регистрации пользователь регистрируется и там и там.
Нет, у меня таблицы используются разные и все дублируется. Это сделано как раз для того, чтобы не менять систему авторизации форума и не менять систему авторизации системы управления. Просто в CMS реализован механизм handler'ов, которые берут на себя работу по дублированию/редактированию/удалению данных в форуме при наступлении некоторого события, в данном случае создании/редактировании/удалении пользователя в CMS. То есть в форуме механизм регистрации отключен полностью и всю работу осуществляет регистрация в CMS + работа handler'а. Аналогично запускается и обработчик авторизации, не изменяя механизмов работы и авторизации в самой CMS.

Автор оригинала: baev
Можно, конечно, вообще отключить регистрацию на форуме, Либо Вы вообще систему vBulletin не используете, либо — нужно править код, чтоб, например, при удалении пользователя из форума шло удаление и из CMS.
Именно так и должно быть.

-~{}~ 28.12.05 18:50:

Автор оригинала: Panchous
для авторизации на форуме достаточно выставить нужные куки - копай исходник
Я тоже так думал, когда начал биться с phpBB, а потом оказалось что этого мало и создание кук не приводит к авторизации в форуме, или приводит, но с дурными последствиями при любой попытке написать новую тему, например. Сейчас уже не помню. Так что, и здесь не уверен, что это спасет, потому как есть табличка session, в которой некая инфа хранится про тех пользователей, которые сейчас в онлайне и достаточно ли в нее информацию заносить при авторизации пользователей тоже вопрос.
 

baev

‹°°¬•
Команда форума
Именно так и должно быть.
Ну, тогда только так:
придётся весь отключенный механизм регистрации переносить в CMS
и всё управление пользователями — тоже. И тут уже «сотней строк кода» не обойдётесь.

Один пример: если Вы «тупо» пользователя из CMS и из форума удалите, что с его постами на форуме произойдёт?
 

Антон Попов

Новичок
Автор оригинала: baev
Ну, тогда только так:

и всё управление пользователями — тоже. И тут уже «сотней строк кода» не обойдётесь.

Один пример: если Вы «тупо» пользователя из CMS и из форума удалите, что с его постами на форуме произойдёт?
Вот и хочется найти умное решение этой задачке... Я нашел, что есть подобная интеграция CMS Typo3 с vBulletin, вот узнать бы детали реализации...
 

zarus

Хитрожопый макак
А не проще ли просто переносить юзеров из БД CSM в БД vB (по крону, например, ну и естетсвенно, не тупое копирование), и переписать функцию авторизации в CMS, чтобы она формировала правильные куки/сессии?
 

baev

‹°°¬•
Команда форума
А не проще ли просто переносить юзеров из БД CSM в БД vB
Врядли проще.
Лично у меня это было просто невозможно. В CMS пароли пользователей хранились в виде хэша MD5, а в «бюллютене» пароли через MD5 «прогоняются» дважды, причём с «солью».

То есть, получить хэш для форума можно только при регистрации пользователя — пока пароль не зашифрован.

Ну и, опять же, временные лаги. Если пользователь в CMS свои регистрационные данные поменяет, он не сможет войти на форум пока cron не отработает.
 

Антон Попов

Новичок
Автор оригинала: baev
Ну и, опять же, временные лаги. Если пользователь в CMS свои регистрационные данные поменяет, он не сможет войти на форум пока cron не отработает.
Ага, к тому же смысл использовать cron, если это можно сразу сделать через обработчик событий?
 

magic

lancer
Есть схожая задача. Никто не поделится структурой таблицы с логинами для vBulletin и файликом login.php?

Спасибо.
 
Сверху