Кросс регистрация в IPB - Дизайн и модификация Invision Power Board

Перейти к содержимому

 

СвернутьПрикрепленные теги

единая регистрация интеграция

Страница 1 из 1

Кросс регистрация в IPB

#1 Пользователь не на сайте   freelancer ответил: »

 
 
  • Newbie
  • *
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 5
  • Регистрация: 05-Ноябрь 15
  • Репутация: 0
  • IPB version:I have no IPB
 

Отправлено 06 Ноябрь 2015 - 11:30

Доброго времени суток всем,

Возникла необходимость сделать кросс регистрацию/вход/удаление пользователей между двумя сайтами. С одной из CMS я знаком очень хорошо, но вот приходится первый раз работать с IPBoard. Собственно вопрос: Каким образом данный функционал можно реализовать проще всего? Я поискал решение данной проблемы в инете и нашел несколько способов:

1. IPS connect
2. Хуки
3. Изменение функций

1-ый способ уместен лишь в том случае, когда пользователь с сайта A(в данном случае это мой сайт) смог зарегистироваться на сайте B(форум IPboard) - по крайней мере я именно этот вариант увидел. Но как в это случае мне взять данные после того как пользователь зарегистрировался на форуме такие как логин, пароль и так далее, чтобы передать их в функцию регистрации сайта A?

2-ой способ, на данный момент мне кажется более правильным. Но хуки здесь работают немного иначе нежели в тех CMS-ках на которых я программирую. А какого-то более ли менее внятного мануала я не нашел (тем более на русском). Поэтому вопрос относительно хуков таков : Какой хук нужно использовать для перехвата пользовательских данных , дабы потом отправить эти данные в метод регистрации другого сайта. Я надеюсь на основе ваших советов, я пойму принцип работы с хуками, дабы подцепиться к данным при обновелнии профиля и его удалении.

3. Просто найти нужные функции регистрации, обновления, удаления и перед внесением обработанных данных в БД IPBoard отправить их в соотвествущую функцию моего сайта.

Заранее огромное спасибо всем тем, кто попытается мне помочь в данном деле, прорыл достаточно большое количество русскоязычных форумов и этот единственный, где дают дельные советы.
0

#2 Пользователь не на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 8 763
  • Регистрация: 20-Март 09
  • Репутация: 2 287
  • IPB version:3.1.x
 

Отправлено 06 Ноябрь 2015 - 15:47

1. Модуль авторизации из внешней базы данных.
При авторизации пользователя на форуме создается локальная учетная запись из внешней базы данных. Внешнюю базу можно сделать как ведущую, регистрация будет происходить только на сайте и тогда упрощается процедура интеграции, или синхронизировать с сайтом и оставить отдельную регистрацию на форуме.

2. memberSync.php
В структуре приложений входит файл memberSync.php* который содержит методы onCreateAccount, onLogin, onLogOut и вызываются в свою очередь при выполнении этих событий. Таким образом можно синхронизировать пользователей форума и сайта.

Если речь идет о WP есть уже готовые решения для двухсторонней интеграции этих систем.

Интеграция
Единная регистрация

* - у IPS 4 другая архитектура.
0

#3 Пользователь не на сайте   freelancer ответил: »

 
 
  • Newbie
  • *
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 5
  • Регистрация: 05-Ноябрь 15
  • Репутация: 0
  • IPB version:I have no IPB
 

Отправлено 13 Ноябрь 2015 - 14:00

Благодарю за ответ. использовал 2-ой способ, регистация с IPBoard на мой сайт проходит на ура. Но теперь возникла проблема в другой штуке:

Когда я на стороннем сайте в скрипте делаю следующее:

require_once $path . '/init.php';


Мне выводит ошибку
Fatal error:  Call to undefined method IPS\collections\Item::parents() in /home/probike/public_html/forums/system/Content/Controller.php on line 405


Хотя как я понял такой ошибки не должно возникать, так как в большинстве примеров по работе работе с ipboard через внешние файлы, подключается данный файл, но у меня он почему-то выдает ошибки. Вы незнаете как это можно пофиксать ?
0

#4 Пользователь не на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 8 763
  • Регистрация: 20-Март 09
  • Репутация: 2 287
  • IPB version:3.1.x
 

Отправлено 13 Ноябрь 2015 - 19:02

<?php

require_once 'init.php';
\IPS\Dispatcher\Front::i()->init();

var_dump( \IPS\Member::loggedIn()->member_id );

?>


Никаких ошибок при его подключении не вижу.
0

#5 Пользователь не на сайте   newbie ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins.ru Team
  • Сообщений: 2 166
  • Регистрация: 26-Октябрь 11
  • Репутация: 814
  • IPB version:I have no IPB
 

Отправлено 23 Ноябрь 2015 - 13:32

IPS\collections\Item - класс приложения Collections (Garage).
Тут правильнее будет написать автору. Или дебажьте код, данные для этого есть.
0

#6 Пользователь не на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 8 763
  • Регистрация: 20-Март 09
  • Репутация: 2 287
  • IPB version:3.1.x
 

Отправлено 23 Ноябрь 2015 - 13:45

Там дело даже не в апи, приложение на самом форуме работает не правильно.
0

#7 Пользователь не на сайте   freelancer ответил: »

 
 
  • Newbie
  • *
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 5
  • Регистрация: 05-Ноябрь 15
  • Репутация: 0
  • IPB version:I have no IPB
 

Отправлено 01 Декабрь 2015 - 12:13

Доброго времени суток. Спасибо за ваши ответы. Исправил ошибку, возникавшую при подключении инициализационного файла IPBoard. Проблема заключалась в том, что я подключал данный файл внутри функции класса CMS системы, где классы по сути не были в областях имен (namespaces) вот он и ругался, мол тут не используется наймспейс, а откуда я тебе найду нужный метод Parents(). Проблему решил подключением форума внекласса ( в самом начале индексного файла CMS). Но тут возникла, последнее затруднение - я не могу поменять пароль пользователя, используя объект IPS\Member.

$login_type = "email"; 
try
  {
            $member = \IPS\Member::load( $account_info['Mail'], $login_type );
        }
        catch ( \OutOfRangeException $e )
        {
            \IPS\Output::i()->error( 'node_error', '2C114/2', 404, '' );
        }

        $member->members_pass_salt = $member->generateSalt();
        $member->members_pass_hash = $member->encryptedPassword( $new_password );
        $member->save();


Пароль зараза не работает, хотя метод save судя по документации должен создавать/обновлять данные пользователя. Может быть я чего не так делаю ? Заранее спасибо за вашу помощь.
0

#8 Пользователь не на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 8 763
  • Регистрация: 20-Март 09
  • Репутация: 2 287
  • IPB version:3.1.x
 

Отправлено 01 Декабрь 2015 - 15:45

В загружаете пользователя по email, проверьте чтобы этот email в таблице был уникальным.
Проверьте содержимое пароля, не применяется ли к нему какое-то преобразование к спецсимволом в сторонней кмс.


Просмотреть сообщениеfreelancer сказал(а):

Проблема заключалась в том, что я подключал данный файл внутри функции класса CMS системы, где классы по сути не были в областях имен (namespaces) вот он и ругался

У вас эта ошибка присутствует в самом приложение на форуме, только в другой строке. Если бы дело было в одном пространстве имен, api бы отвалилась сразу с первом вызовом из пространства форума.
0

#9 Пользователь не на сайте   freelancer ответил: »

 
 
  • Newbie
  • *
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 5
  • Регистрация: 05-Ноябрь 15
  • Репутация: 0
  • IPB version:I have no IPB
 

Отправлено 16 Декабрь 2015 - 11:41

Цитата

В загружаете пользователя по email, проверьте чтобы этот email в таблице был уникальным.
Проверьте содержимое пароля, не применяется ли к нему какое-то преобразование к спецсимволом в сторонней кмс.


Спасибо за вашу помощь, мост между двумя системами работает на ура и тут буквально пару дней назад пришел запрос "зацепить" регистрирующихся пользователей из Фейсбука, Твиттера и так далее. И тут у меня из-за незнания IPBoard возник вопрос:
- Как можно зацепить данные пользователя, который регистрируется на сайте при помощи сторонних модулей типа фесбука и так далее ? Я надеюсь не сильно надоел вас такого рода вопросами
0

#10 Пользователь не на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 8 763
  • Регистрация: 20-Март 09
  • Репутация: 2 287
  • IPB version:3.1.x
 

Отправлено 16 Декабрь 2015 - 15:01

Это обычные пользователи в ипб, только имеют идентификаторы этих систем. Проблема в том, что у пользователей зарегестрировавшихся через соц сети пустой пароль, по паролю идентифицировать их не удастся.
0

#11 Пользователь не на сайте   freelancer ответил: »

 
 
  • Newbie
  • *
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 5
  • Регистрация: 05-Ноябрь 15
  • Репутация: 0
  • IPB version:I have no IPB
 

Отправлено 17 Декабрь 2015 - 12:21

Т.е. получается их никак нельзя перехватить ?

Я думал что можно зацепиться где в функционале, мол когда он создает пользователя он ему генерит какой-то пароль ( и в этот момент мне подцепиться и слить этот пароль к себе в БД). Есть ли какие-нибудь предложения? Оказывается сейчас по статистике большое количество людей регается при помощи соц сетей.
0

#12 Пользователь не на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 8 763
  • Регистрация: 20-Март 09
  • Репутация: 2 287
  • IPB version:3.1.x
 

Отправлено 17 Декабрь 2015 - 18:43

Генерировать пароль можно в том же MemberSync, другое дело что он не сможет им авторизироватся на сайте потому что он его не знает. В этом случае придется ему высылать пароль либо на емайл либо на в ПМ.
0

Сообщить об этой теме:


Страница 1 из 1


Быстрый ответ

  

1 пользователей читают эту тему
0 зарегистрированных, 1 гостей, 0 скрытых


Контактная информация

Вопросы по работе сайта

+7 (917) 501-4765
C 10 до 20 в рабочие дни (время московское)

Техническая поддержка

Контактные данные специалистов

Дизайн форумов

IPB 3.x ¦ IPB 2.x

Бесплатные шаблоны

IPB 3.2 – 3.4 ¦ IPB 3.1 ¦ IPB 3.0 ¦ IPB 2.2 – 2.3 ¦ IPB 2.1 ¦ Клипарт
Лицензия на использование ¦ Ваша поддержка ¦ О проекте
Copyright © 2005-2016 IPBSkins.ru Team
При копировании материалов с сайта
прямая ссылка на источник обязательна