Туториал [урок] система авторизации клиента

  • Автор темы Автор темы byxar
  • Дата начала Дата начала

byxar

Старожил
Девелопер
Баллы
103
Система авторизации клиента позволяет зайти на сервер только игрокам использующим ваш лаунчер и клиент. Соответственно отпадает надобность в плагинах авторизации.
Для использования этой системы нужно скачать исходники лаунчера(смотрите прикрепленные файлы), написанный мною скрипт(смотрите прикрепленные файлы), а также mcp44 для редактирования клиента и официального сервера или In Class Translator(смотрите прикрепленные файлы) для редактирования bukkit сервера.
Заливаем скрипты на свой сайт, все в одну папку и настраиваем connect.php под свою базу данных. Если у вас уже есть таблица с аккаунтами, то нужно добавить в нее колонки server и session. Если нет, то импортируйте файл accounts.sql в свою MySQL базу. Также обязательно нужно импортировать файл data.sql
Описание полей в таблице data:
launcher-version : версия лаунчера(если не знаете зачем оно, не трогайте)
last-game-build : версия клиента(любое значение, указывать без точек), это нужно изменять когда вы заливаете новую версию клиента

Теперь открываем исходники лаунчера в eclipse или NetBeans. В файле GameUpdater.java заменяем http://s3.amazonaws.com/MinecraftDownload/ на ссылку откуда будет качаться клиент, в файле LauncherFrame.java заменяем https://login.minecraft.net/ на ссылку к файлу auth.php , в файле LoginForm.java заменяем http://www.minecraft.net/register.jsp на ссылку к своей регистрации и http://www.minecraft.net/download.jsp на ссылку загрузок на своем сайте(не обязательно) и компилируем(как это сделать: ссылка).
Теперь откройте папку куда распаковали mcp44 и закиньте клиентскую папку bin и чистый minecraft_server.jar(если у вас официальный сервер) в папку jars. Декомпилируйте. Откройте src\minecraft\net\minecraft\src\NetClientHandler.java в любом текстовом редакторе и замените http://session.minecraft.net/game/joinserver.jsp?user= на ссылку к файлу joinserver.php и обязательно оставьте ?user= в конце. Потом откройте src\minecraft_server\net\minecraft\src\ThreadLoginVerifier.java в любом текстовом редакторе и замените http://session.minecraft.net/game/checkserver.jsp?user= на ссылку к файлу checkserver.php и обязательно оставьте ?user= в конце. Рекомпилируйте и запустите файл reobfuscate.bat. Теперь закинте файл в папке reobf\minecraft в minecraft.jar и файл в папке reobf\minecraft_server в minecraft_serer.jar. Все, запускайте сервер c параметром online-mode=true и пробуйте.
Если используете bukkit сервер, то извлеките из craftbukkit-0.0.1-SNAPSHOT.jar файл net\minecraft\server\ThreadLoginVerifier.class, откройте его в In Class Translator и замените http://session.minecraft.net/game/checkserver.jsp?user= на ссылку к файлу checkserver.php и обязательно оставьте ?user= в конце. Закинте файл ThreadLoginVerifier.class обратно в craftbukkit-0.0.1-SNAPSHOT.jar. Все, запускайте сервер c параметром online-mode=true и пробуйте.
Скрипт поддерживает md5 хеш и хеш плагина xauth. Т.е. если у вас стоял плагин авторизации, вы без труда можете перейти на эту систему.

скрипты для проверки
простая регистрация с мд5 хэшем

Файлы, которые нужно редактировать In Class Translator'ом в версии 1.0.0
в клиенте:
Код:
abp.class - путь к joinserver.php
di.class - путь к папке со скинами
vi.class - путь к папке с плащами
zb.class - путь к папке со скинами
vanilla server:
Код:
n.class - путь к checkserver.php
bukkit:
Код:
ничего не поменялось
 

Вложения

А вещь реально интересная, нужно будет склеить её с IPB форумом и будет идеально, кстати не думал сделать хук из этого?
 
Ну для большей связанности ресурса и игры, в принципе если покапаться то можно сшить это дело с решистрацией движков IPB ну или воблы. помоему очень даже прикольно когда имеешь одну регу на всех ресурсах сервера. вот и займусь на досуге)
ибо например с IPB фундаментально это совместимо, т.к что там , что там используется md5 шифрование пароля, в принцепе подцепить "не родную" базу можно что скин-скрипту, что к лаунчеру. а так как в этим движкам существует уйма совместимых CMS (да хоть Wordpress если на то пошло) то в конечном итоге мы имеем очень интересную инфраструктуру Игра+Сайт+Комьюнити , приправленное 100% защитой от левых лаунчеров без пароля(ибо online=true ) без награмождения лишних login модов , получится так вообще конфетка. ( пойду импровизировать исходники выложу)
Можете кинуть готовый launcher? Компилировать не получается.
Могу оказать услугу по настройке и компиляции лаунчера под твой сервера - пиши в ПМ.
 
Скажите, плиз, как компилировать, имея все файлы .class и manifest.mf
 
Ну для большей связанности ресурса и игры, в принципе если покапаться то можно сшить это дело с решистрацией движков IPB ну или воблы. помоему очень даже прикольно когда имеешь одну регу на всех ресурсах сервера. вот и займусь на досуге)
ибо например с IPB фундаментально это совместимо, т.к что там , что там используется md5 шифрование пароля, в принцепе подцепить "не родную" базу можно что скин-скрипту, что к лаунчеру. а так как в этим движкам существует уйма совместимых CMS (да хоть Wordpress если на то пошло) то в конечном итоге мы имеем очень интересную инфраструктуру Игра+Сайт+Комьюнити , приправленное 100% защитой от левых лаунчеров без пароля(ибо online=true ) без награмождения лишних login модов , получится так вообще конфетка. ( пойду импровизировать исходники выложу)

Могу оказать услугу по настройке и компиляции лаунчера под твой сервера - пиши в ПМ.
эту систему связать можно с чем угодно. главное чтобы в таблице были колонки с логином, паролем, сессией и ид сервера. имена этих колонок настраиваются в connect.php
+ к системе можно дописать распознавание любого хеша за пару минут.
Скажите, плиз, как компилировать, имея все файлы .class и manifest.mf
тут я помочь не могу... если у тебя есть лаунчер в .jar, попробуй запихнуть свои класс файлы в него
 
Скажите, плиз, как компилировать, имея все файлы .class и manifest.mf
*.class - Скомпилированные Java классы.
*.java - Исходные Java классы.
От слова исходные и произошла "привычка" называть .java классы просто и со вкусом - исходники.
manifest.mf - Файл с информацией о пакете(Главный класс, автор, имя программы, версия, чем был собран) *.jar, который является архивом *.class классов.
Вот теперь думаю ты сам найдёшь ответ на свой вопрос и ошибку одновременно...
 
Спасибо, но это я всё знал.
Мне нужно просто знать что делать после выполнения проекта. С какими файлами и как сделать один .jar файл.
lol63, дополни свой урок.
 
Спасибо, но это я всё знал.
Мне нужно просто знать что делать после выполнения проекта. С какими файлами и как сделать один .jar файл.
lol63, дополни свой урок.
в eclipse: File -> Export... , а дальше включай знания английского
в NetBeans не знаю
 
+ к системе можно дописать распознавание любого хеша за пару минут.
Если не сложно прилепи плз распознавание хешей md5(md5(pass))
Двойная md5 шифровка используется в DLE. Сам не смогу этого сделать(
 
Если не сложно прилепи плз распознавание хешей md5(md5(pass))
Двойная md5 шифровка используется в DLE. Сам не смогу этого сделать(
functions.php , 32 строка, замени
PHP:
                $cp = md5($password);
на
PHP:
                $cp = md5(md5($password));
правда, одиночную мд5 понимать не будет
 
мне нужен php скрипт, который добавит в базу логин и пароль в md записи.
Она вроде в БД хранится не как текст, а зашифрованно. Не могли бы вы поделиться скриптом?
 
Все сделал как здесь и ничего не заработало!
 
мне нужен php скрипт, который добавит в базу логин и пароль в md записи.
Она вроде в БД хранится не как текст, а зашифрованно. Не могли бы вы поделиться скриптом?

тебе нужен и логин в мд5 и пароль в мд5 ?
Ааааааа, нашу инопланетную технологию спалил :(
почему это вашу? Оо
имхо, нужно делится
Все сделал как здесь и ничего не заработало!
раз и два
 
Назад
Верх