За последние 24 часа нас посетили 17604 программиста и 1590 роботов. Сейчас ищут 1568 программистов ...

Интеграция пользователей из IPB v3.3.1

Тема в разделе "Прочие вопросы по PHP", создана пользователем Neka, 24 окт 2012.

  1. Neka

    Neka Активный пользователь

    С нами с:
    16 янв 2010
    Сообщения:
    188
    Симпатии:
    0
    Приветствую!
    Имею форум вполне настроенный, но не запущенный еще в открытое плавание. Так же ваяю сайт для того же проекта на Symfony2.1 .
    Необходимо сделать авторизацию прозрачной для пользователя: залогинился на сайте - на форуме уже залогинен, так же хочу перехватить регистрацию у IPB и сделать свою, мало ли полей еще придется добавить к юзеру.
    Форум находится по пути /forum, вешает куки на /, значит все просто.

    Так где же взять хоть какие-то доки, где бы описывались поля в таблице ipb_members, как генерится salt, pass_hash?

    А может вы имели уже подобный опыт и поделитесь рецептом?

    Буду крайне благодарен любой помощи в этом направлении.
     
  2. runcore

    runcore Старожил

    С нами с:
    12 окт 2012
    Сообщения:
    3.625
    Симпатии:
    158
    думаю док. по интеграции готовых нет.
    я при решении подобной задачи но с другим форумным движком, ковырял его исходники. нашел функции которые использовались и просто заинклюдил файл с ними и использовал на общем сайте, чтобы не плодить сущности.
     
  3. Neka

    Neka Активный пользователь

    С нами с:
    16 янв 2010
    Сообщения:
    188
    Симпатии:
    0
    Пока нет никаких доков, я естественно ковыряю сырцы форума.
    Проблема еще в том, что у Symfony2 своя логика авторизации пользователей, ей нужны свои UserProviderб AuthenticationProvider, AuthenticationListener, Token и фабрика, которая все это будет в себе объединять, так что простым инклудом тут не обойдешься)
     
  4. runcore

    runcore Старожил

    С нами с:
    12 окт 2012
    Сообщения:
    3.625
    Симпатии:
    158
    поэтому она мне и не нравится. на элементарную задачу миллион классов и зависимостей.
    у того же Yii надо просто отнаследоваться от CUserIdentity, и там реализовать логику откуда именно брать данные для авторизации...
     
  5. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
    Выход есть, изучайте скрипт-код.
    Или в платник.
     
  6. Neka

    Neka Активный пользователь

    С нами с:
    16 янв 2010
    Сообщения:
    188
    Симпатии:
    0
    Как по мне - все логично и разложено по полочкам
    AuthenticationProvider по переданным ему данным производит аутентификацию, и возвращает Token или false, Token содержит в себе идентификационную информацию о пользователе, AuthenticationListener слушает запрос на предмет аутентификационных данных в нем, ну а UserProvider итак понятно, что он делает.
    Более того, Symfony2 не ставит вас ни в какие рамки. Для одного из проектов мне необходима была авторизация через NetUP UTM5 через консольную URFA - я просто написал Service (обычный РНР класс), который работает с сессиями и аутентификацией, минуя SecurityBundle. Так что зря вы так на этот прекрасный фреймворк.
    You're awesome! Жаль, что это только сарказм.

    Проблема в том, что в таблице пользователей есть поля login_key и login_key_expired, ну и еще вагон полей. Что куда я пока не понял.
     
  7. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
    Там кодеры еще такие, для себя только пишут)
    Форум обвешан до жопы, по 40-50 запросов на главной странице.)

    Вам лучше будет обратиться на http://www.ibresource.ru/ и спросить на форуме.
    Там занимаются многие этим форумом.
     
  8. ваяс

    ваяс Активный пользователь

    С нами с:
    8 июн 2012
    Сообщения:
    99
    Симпатии:
    0
    Перепишите авторизацию под себя, и все дела. Я так и сделал когда SSO делал, и не обязательно знать для чего все поля в таблице MEMBERS.
    Вот ссылка на ресурс, там все просто.
    http://community.invisionpower.com/resources/documentation/ ... modules-r7
     
  9. Neka

    Neka Активный пользователь

    С нами с:
    16 янв 2010
    Сообщения:
    188
    Симпатии:
    0
    Да, отлично! Спасибо.
    Но это не то, что надо =(
    1. IPB ставит куку session_id, Symfony2 - PHPSESSID, поменять-то не проблема, но...
    2. Не знаю как IPB хранит данные о логине в сессии, но симфони хранит сериализованный объект юзера.
    3. Разные куки хранения логин-инфо при Remember Me галочке.

    Авторизацию из IPB базы данных я сделал, но проблема заключается в этих 3-х пунктиках, получается как разные ресурсы, хоть и находятся в одной папке, из-за разной интерпретации разных кук. Это тоже решаемо.

    Но если вы можете, объясните, как работать с полями login_key и login_key_expired?
     
  10. ваяс

    ваяс Активный пользователь

    С нами с:
    8 июн 2012
    Сообщения:
    99
    Симпатии:
    0
    Я не разбирался если честно для чего они нужны.
    Но, если вы хотите сделать SSO. Почему решение о переписывании авторизации под себя, не решает вашей проблемы, в моем же случае решило. У меня то же единый вход. И не один сайт, а десятки

    Добавлено спустя 2 минуты 52 секунды:
    И вводить логин и пароль необходимо только ОДИН раз, после чего мы будем авторизованы на всех сайтах, и пользователь доволен, не где больше не нужно подтверждать, гуляет себе спокойно и все.
     
  11. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
    Еще раз повторяю, на форум IPB с такими вопросами.
    Или там где занимаются этим форумом.