1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.
  2. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.
    Скрыть объявление

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

Тема в разделе "Руководства, инструкции, утилиты", создана пользователем byxar, 6 ноя 2011.

  1. Автор темы
    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:
    Код:
    ничего не поменялось
    
     

    Вложения:

    ilsaf, Teremok, Graf1995 и 82 другим нравится это.
  2. Быстрая раскрутка сервера Minecraft
  3. Grim

    Grim Активный участник

    Баллы:
    78
    Skype:
    desscreamer1
    А вещь реально интересная, нужно будет склеить её с IPB форумом и будет идеально, кстати не думал сделать хук из этого?
     
    SAM-A3L, Spos и Bashur нравится это.
  4. Problem?

    Problem? Старожил

    Баллы:
    103
    Да и ещё Зделай пажалуста register.php
     
  5. Автор темы
    byxar

    byxar Старожил Девелопер

    Баллы:
    103
    зачем?
    как-нибудь потом, может быть...
     
    MrHerobrine нравится это.
  6. dimankirs

    dimankirs Активный участник

    Баллы:
    63
    Можете кинуть готовый launcher? Компилировать не получается.
    Или скажите как компилировать, имея все файлы .class
     
  7. Grim

    Grim Активный участник

    Баллы:
    78
    Skype:
    desscreamer1
    Ну для большей связанности ресурса и игры, в принципе если покапаться то можно сшить это дело с решистрацией движков IPB ну или воблы. помоему очень даже прикольно когда имеешь одну регу на всех ресурсах сервера. вот и займусь на досуге)
    ибо например с IPB фундаментально это совместимо, т.к что там , что там используется md5 шифрование пароля, в принцепе подцепить "не родную" базу можно что скин-скрипту, что к лаунчеру. а так как в этим движкам существует уйма совместимых CMS (да хоть Wordpress если на то пошло) то в конечном итоге мы имеем очень интересную инфраструктуру Игра+Сайт+Комьюнити , приправленное 100% защитой от левых лаунчеров без пароля(ибо online=true ) без награмождения лишних login модов , получится так вообще конфетка. ( пойду импровизировать исходники выложу)
    Могу оказать услугу по настройке и компиляции лаунчера под твой сервера - пиши в ПМ.
     
    Morik, Moncs, Райнур и ещё 1-му нравится это.
  8. dimankirs

    dimankirs Активный участник

    Баллы:
    63
    Скажите, плиз, как компилировать, имея все файлы .class и manifest.mf
     
    MrHerobrine нравится это.
  9. Автор темы
    byxar

    byxar Старожил Девелопер

    Баллы:
    103
    эту систему связать можно с чем угодно. главное чтобы в таблице были колонки с логином, паролем, сессией и ид сервера. имена этих колонок настраиваются в connect.php
    + к системе можно дописать распознавание любого хеша за пару минут.
    тут я помочь не могу... если у тебя есть лаунчер в .jar, попробуй запихнуть свои класс файлы в него
     
    Teremok нравится это.
  10. lol63

    lol63 Старожил Переводчик

    Баллы:
    153
    *.class - Скомпилированные Java классы.
    *.java - Исходные Java классы.
    От слова исходные и произошла "привычка" называть .java классы просто и со вкусом - исходники.
    manifest.mf - Файл с информацией о пакете(Главный класс, автор, имя программы, версия, чем был собран) *.jar, который является архивом *.class классов.
    Вот теперь думаю ты сам найдёшь ответ на свой вопрос и ошибку одновременно...
     
    dmitrij_kobets, Viis, D_ART и 3 другим нравится это.
  11. dimankirs

    dimankirs Активный участник

    Баллы:
    63
    Спасибо, но это я всё знал.
    Мне нужно просто знать что делать после выполнения проекта. С какими файлами и как сделать один .jar файл.
    lol63, дополни свой урок.
     
  12. Автор темы
    byxar

    byxar Старожил Девелопер

    Баллы:
    103
    в eclipse: File -> Export... , а дальше включай знания английского
    в NetBeans не знаю
     
  13. UfaRock

    UfaRock Участник

    Баллы:
    28
    Skype:
    RockUfa
    Если не сложно прилепи плз распознавание хешей md5(md5(pass))
    Двойная md5 шифровка используется в DLE. Сам не смогу этого сделать(
     
    slavik123123123 нравится это.
  14. Автор темы
    byxar

    byxar Старожил Девелопер

    Баллы:
    103
    functions.php , 32 строка, замени
    PHP:
                    $cp md5($password);
    на
    PHP:
                    $cp md5(md5($password));
    правда, одиночную мд5 понимать не будет
     
    UfaRock нравится это.
  15. Автор темы
    byxar

    byxar Старожил Девелопер

    Баллы:
    103
    вот еще на скорою руку сделал. тут и мд5() и мд5(мд5())
     

    Вложения:

    • functions.zip
      Размер файла:
      907 байт
      Просмотров:
      173
    APTEM и UfaRock нравится это.
  16. Fallout100500

    Fallout100500 Активный участник

    Баллы:
    63
    мне нужен php скрипт, который добавит в базу логин и пароль в md записи.
    Она вроде в БД хранится не как текст, а зашифрованно. Не могли бы вы поделиться скриптом?
     
  17. Enjection

    Enjection Активный участник Пользователь

    Баллы:
    78
    Ааааааа, нашу инопланетную технологию спалил :(
     
    I-Am-Black-Overlord нравится это.
  18. Aleks1234

    Aleks1234 Активный участник

    Баллы:
    88
    Все сделал как здесь и ничего не заработало!
     
    caNek нравится это.
  19. Автор темы
    byxar

    byxar Старожил Девелопер

    Баллы:
    103
    тебе нужен и логин в мд5 и пароль в мд5 ?
    почему это вашу? Оо
    имхо, нужно делится
    раз и два
     
    Сникерсни и MattJensen нравится это.
  20. Aleks1234

    Aleks1234 Активный участник

    Баллы:
    88
    Смешно...
     
    ВремяПриключений нравится это.
  21. dimankirs

    dimankirs Активный участник

    Баллы:
    63
    Вот такая ошибка при запуске лаунчера. Ну почему никто не может поделится готовым .jar?
     
    ПриветОтМиднайта нравится это.

Поделиться этой страницей