Хостинг серверов Minecraft playvds.com
  1. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.
    Скрыть объявление

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

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

  1. Exta5y

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

    Баллы:
    63
    Форма регистрации то имеется?
    include "connect.php"; - переписал на путь до твоего файла конфигураций?
     
  2. Хостинг MineCraft
    <
  3. SnaKeSkin

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

    Баллы:
    88
    Skype:
    snakeskin2111
    я правильно понял, как работает эта система. Нужно интегрировать её в лаунчер не из этого топика.
    лаунчер -> скрипт(joinserver.php) <-> сервер -> игра
    клиент -> скрипт(joinserver.php) <-> сервер
    В первом случае по моей схеме видно, что лаунчер запрашивает данные у скрипта, скрипт лезет в базу, берёт данные и кидает на сервер, если данные проходят то пускает на сервер.
    Во втором случает если кто-то другой использует не наш клиент\лаунчер запрос не проходит а следовательно не пускает.
    Я просто хочу сделать систему с помощью которой на сервер сможет зайти только игрок использующий наш клиент\лаунчер. Посмотрел Ваши скрипты, там половина лишнего, но думаю что смогу переделать) Мне главное правильно проследить алгоритм.
     
  4. zuma2

    zuma2 Старожил Пользователь Заблокирован

    Баллы:
    173
    Skype:
    sytems.admin
    Имя в Minecraft:
    zuma2
  5. SnaKeSkin

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

    Баллы:
    88
    Skype:
    snakeskin2111
    хмм, не под силу понять? :)
     
  6. zuma2

    zuma2 Старожил Пользователь Заблокирован

    Баллы:
    173
    Skype:
    sytems.admin
    Имя в Minecraft:
    zuma2
    убери это лишнее я зайду и снесу тебе все
     
  7. SnaKeSkin

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

    Баллы:
    88
    Skype:
    snakeskin2111
    удачи. Жаль что в школе знаки препинания не научили ставить.
     
  8. Exta5y

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

    Баллы:
    63
    Смотря о ком ты. Вроде запостили достаточно информации.
    Можно в пост запросе послать некую строку, а в скрипте авторизации проверять ее. Это проще, чем запускать mcp и рыть кучу файлов.
     
  9. zuma2

    zuma2 Старожил Пользователь Заблокирован

    Баллы:
    173
    Skype:
    sytems.admin
    Имя в Minecraft:
    zuma2
    :fp::fp::fp: :fp::fp::fp: :fp::fp::fp: :fp::fp::fp: :fp::fp::fp: :fp::fp::fp: :fp::fp::fp: :fp::fp:
     
  10. SnaKeSkin

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

    Баллы:
    88
    Skype:
    snakeskin2111
    ну получается что придётся править 2 файла на клиенте, один на сервере и дописывать кое что в лаунчер. Или можно ещё как-то упростить? Мне авторизация не нужна в лаунчере, просто сделать какую-то проверку, стартует игрок через лаунчер или использует что-то другое. Во втором случае, просто игнорировать, в первом запускать...
     
  11. Exta5y

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

    Баллы:
    63
    Говоря о пирогах, пора бы спать идти. Тормознул я. В любом случае придется следовать статье, если нужна проверка клиента. Печаль.
     
  12. makkarpov

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

    Баллы:
    88
    Система работает так:
    1) (Лаунчер) auth.php (POST: username=...&password=...&version=13) -> sessId возвращается лаунчеру
    2) (Лаунчер) запускает клиент, указывая ник и sessId в параметрах
    3) (Клиент) при заходе на сервер обращается к скрипту joinserver.php указывая sessId и serverId (serverId - не знаю, откуда берется, видать случайное)
    4) (Сервер) при заходе клиента обращается к скрипту checkserver.php, указывая в параметрах serverId и ник. Если в таблице есть человек с таким ником и таким serverId (а он окажется там после joinserver.php?serverId=..., если sessId верно) - пускает, иначе - нет

    Если на сервере не стоит online-mode, то шаги 3 и 4 не выполняются.
    Таким образом, чтобы сделать авторизацию, надо патчить все 3 части игры.

    Если не тот лаунчер - не выполнится auth.php и joinserver.php даст ошибку Bad login
    Если не тот клиент - не выполнится joinserver.php и checkserver.php даст ошибку Failed to verify username
    Если не тот сервер и online-mode=true, то checkserver.php обратится к своей базе, где нашего serverId не наблюдается, и будет Failed to verify username

    И замечание по системе: зачем таблица properties, если там два значения и используется в двух местах?
     
  13. GLAVAK

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

    Баллы:
    63
    Авторизация работает, но клиент не обновляется, пишет нет файла lwjgl.jar:(
    Как вообще клиент нужно заливать в папку на сайте(http://s3.amazonaws.com/MinecraftDownload/)?
    Уже пробывал и .minecraft, и bin, и client.zip заливать, всё равно.
     
  14. makkarpov

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

    Баллы:
    88
    :D Никак. Меняйте ссылку на свою
     
  15. GLAVAK

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

    Баллы:
    63
  16. Aleks1234

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

    Баллы:
    88
    config.php что ли?
     
  17. Ivan_C

    Ivan_C Старожил

    Баллы:
    103
    Skype:
    ivan..c
    Можно-ли прикрутить к системе с регистрацией и прочим цепляемость к форумам?
     
  18. SnaKeSkin

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

    Баллы:
    88
    Skype:
    snakeskin2111
    можно
     
  19. makkarpov

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

    Баллы:
    88
    Можно, нужно ткнуть носом систему в таблицу с юзерами, и (если необходимо), модифицировать алгоритм хэширования
     
    DavidShabaev нравится это.
  20. Ivan_C

    Ivan_C Старожил

    Баллы:
    103
    Skype:
    ivan..c
    Хотя я тут думаю перейти на друпал.
     
    Оригинало_о и Prosto Sokka нравится это.
  21. GLAVAK

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

    Баллы:
    63
    Разобрался с Unable to download, забыл слеш в конце поставить)
    Теперь новая проблема: при скачивании проценты идут примерно от -1000000 до 1000000, а не от 0 до 100
     
    Prosto Sokka нравится это.

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