Jump to content

Регистрация на 2 базы

Featured Replies

Posted

Доброго времени суток, в общем суть такова планирую своими силами модернизировать регистрацию с форума IPB в дополнительную базу, к примеру для игрового сервера WoW
Предлагаю перейти к обсуждению данного решения, возможно людям это будет полезным.

И так, что мы имеем:

№ 1 Стандартная регистрация форума IPB - https://gadgetzan-lines.com/index.php?/register/

№ 2 Стандартная регистрация для игрового сервера - https://gadgetzan-lines.com/reg/

По сути формы одинаковы, на базы конечно же разные.

Задача: -Избавиться от регистрации номер №2, что бы при регистрации на форуме можно было попасть и в игру.

Какие варианты решения задачи имеем?

Ниже прикреплен дамп с таблицей account базы auth, именно в эту таблицу должна идти дополнительная регистрация!

 

 

account.sql

  • Replies 56
  • Просмотров 6,6k
  • Created
  • Последний ответ

Лучшие авторы в теме

Most Popular Posts

  • Должно работать: регистрация. при этом данные должны подходить на сервере Смена пароля Авторизация (включая уже зареганые аккаунты на сервере )   Пробуй wowautch.xml wowa

  • В ipb в ядре регистрации добавить данные о подключении к другой бд и создать запрос о регистрации (добавлении данных ) Подводные камни могут быть с шифрованием пароля.

  • Выключить цпу и в адресе будет ответ какой файл смотреть.

Posted Images

В ipb в ядре регистрации добавить данные о подключении к другой бд и создать запрос о регистрации (добавлении данных )

Подводные камни могут быть с шифрованием пароля.

  • Author
  On 30.09.2016 at 16:22, iKODEAK said:

В ipb в ядре регистрации добавить данные о подключении к другой бд и создать запрос о регистрации (добавлении данных )

Подводные камни могут быть с шифрованием пароля.

Допустим, сейчас залез в файлы форума, ох уж это ООП, подскажи какой именно файл-скрипт осуществляет заполнение базы, почему то в базе форума, таблица регистрации называется core_members, какие еще сюрпризы ждать от разработчиков IPB? Потому что я уже минут 30 копаюсь и не могу найти нужный скрипт регистрации....

z8ToT8z, очень давно делал такое. там особое шифрование нужно добавить в IPS4 .. без хаков не обойтись. Нужно глянуть какой нибудь скрипт регистрации для сервера и глянуть как он шифрует пароли и потом уже делать хак. 

 

За заполнение базы юзеро отвечает 

//создать юзера

new \IPS\Member();

 

/// пример загрузки и редакритования 

$user =  \IPS\Member::load( 1 );

$user->name = 'Новое имя';

$user->save(); /// вызывать нужно всегда чтоб сохранить данные 

  • Author
  On 30.09.2016 at 16:45, greykoo said:

z8ToT8z, очень давно делал такое. там особое шифрование нужно добавить в IPS4 .. без хаков не обойтись. Нужно глянуть какой нибудь скрипт регистрации для сервера и глянуть как он шифрует пароли и потом уже делать хак. 

 

Вот та регистрация что у меня сейчас стоит, простая без заморочек.

reg_ajax_v2.rar

  On 30.09.2016 at 16:38, z8ToT8z said:

Допустим, сейчас залез в файлы форума, ох уж это ООП, подскажи какой именно файл-скрипт осуществляет заполнение базы, почему то в базе форума, таблица регистрации называется core_members, какие еще сюрпризы ждать от разработчиков IPB? Потому что я уже минут 30 копаюсь и не могу найти нужный скрипт регистрации....

Выключить цпу и в адресе будет ответ какой файл смотреть.

Всё понятною При регистрации нужно отправлять такие данные в БД на сервер wow, т.е нужно изменить функцию регистрации и изменить данные 

sha1(strtoupper('логин:'.strtoupper('пароль'));

  • Author
  On 30.09.2016 at 17:00, greykoo said:

Всё понятною При регистрации нужно отправлять такие данные в БД на сервер wow, т.е нужно изменить функцию регистрации и изменить данные 

sha1(strtoupper('логин:'.strtoupper('пароль'));

Можно по подробнее?

Если моя теория верна - значит авторизация должна работать 

System -> Login Handlers->External Database 

Сам метод нужно включить и настроить его

Настроить External Database

Скриншот 30-09-2016 210035.png

Установить хак wowautch.xml

 

Попробуй зайти из БД wow и тестируй только на тестовом сервере ибо тут не все функции заскрипчены , просто проверить нужно 

 

wowautch.xml

  On 30.09.2016 at 19:00, z8ToT8z said:

Авторизация работает отлично, т.е. теперь можно с 2-х баз заходить!)

Нужно так же еще сделать смену пароля и при регистрации отправлять в БД данные. Как время будет - сделаю 

  On 30.09.2016 at 19:11, z8ToT8z said:

Теперь вся надежда на Вас greykoo!

Должно работать:

регистрация. при этом данные должны подходить на сервере

Смена пароля

Авторизация (включая уже зареганые аккаунты на сервере )

 

Пробуй wowautch.xml

wowautch.xml

 

Отпишись о результатах. 

wowautch.xml

Edited by greykoo

В IPB есть такая штука как синхронизация пользователей (MemberSync), она выполняется при определенных событий on%Event% и имеет в своем классе большинство событий для полноценной синхронизации пользователя с удаленной базой данных - onCreateAccount, onLogin, onDelete, onProfileUpdate и тд. Этот инструмент дает больше возможностей для управления. Правда, с паролем там небольшие проблемы, так как есть только изменяемые поля, но нету "чистого" пароля. Можно и с методом авторизации синхронизировать, с костылями для хеширования пароля, регистрация аккаунта на примере выше это получилось так 

WoW External Auth.xml

WoW External Auth.xml

  • Author
  On 01.10.2016 at 12:45, soka said:

В IPB есть такая штука как синхронизация пользователей (MemberSync), она выполняется при определенных событий on%Event% и имеет в своем классе большинство событий для полноценной синхронизации пользователя с удаленной базой данных - onCreateAccount, onLogin, onDelete, onProfileUpdate и тд. Этот инструмент дает больше возможностей для управления. Правда, с паролем там небольшие проблемы, так как есть только изменяемые поля, но нету "чистого" пароля. Можно и с методом авторизации синхронизировать, с костылями для хеширования пароля, регистрация аккаунта на примере выше это получилось так 

WoW External Auth.xml

WoW External Auth.xml

Ну проблема уже решена.

Огромное спасибо хочется выразить greykoo, если бы не он, я бы мучился долго, очень долго!

 

  On 01.10.2016 at 13:01, z8ToT8z said:

Ну проблема уже решена.

greykoo, это лучше заменить 

                    if( !empty( $_POST['auth'] ) ) {
                        $username =  $_POST['auth'];
                    }else if( !empty( \IPS\Member::loggedIn()->name ) ) {
                        $username = \IPS\Member::loggedIn()->name;
                    }  else {
                        return null;
                    }

Иначе, если администратор сменит пароль пользователю из АЦ в получим в качестве username имя администратора. Да и при регистрации под вопросом, хотя не смотрел.

Edited by soka

Удаленная база это такое, сегодня она есть завтра ее нету. Паролю лучше быть, имхо. Да и сможет ли пользователь сменить себе пароль на форуме если его нету? По моему нет. Только на удаленной базе. А если администратора в АЦ форума сменит пароль пользователя, тогда в username хеша будет имя текущего авторизированого пользователя.

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

У вас функция смены пароля будет использовать имя текущего пользователя, еще раз обратите внимание, если администратор попытается сменить этому пользователю пароль в АЦ и при этом запустится changePassword он поломает ему пароль в удаленной базе. Это потенциальный баг. А наличия паролей в двух базах никоем образом не мешает "прямому взаймодействию".  Если взамодействие жизнено важно нужно смотреть в другую сторону, а именно в memberSync.

Edited by soka

  On 01.10.2016 at 13:27, soka said:

У вас функция смены пароля будет использовать имя текущего пользователя, еще раз обратите внимание, если администратор попытается сменить этому пользователю пароль в АЦ и при этом запустится changePassword он поломает ему пароль в удаленной базе. Это потенциальный баг. А наличия паролей в двух базах никоем образом не мешает "прямому взаймодействию".  Если взамодействие жизнено важно нужно смотреть в другую сторону, а именно в memberSync.

Я делал так как это делает IPS - то есть не стал добавлять пароли в базу. Взаимодействовать с БД нужно моментально ибо игроки не станут ждать пока аккаунт зарегается через какое-то там время , я уже об этом писал - это очень важно

  • Author

А если работать прикрепить к форуму модуль скажем личного кабинета для игрового сервера? Но конечно хотелось бы все реализовать на базе форума.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Ответить в этой теме...

Последние посетители 0

  • No registered users viewing this page.