Хостинг серверов Minecraft playvds.com
  1. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.
    Скрыть объявление
  2. Данный раздел создан исключительно для релизов! Вопросы по лаунчеру или обвязке задавайте ТОЛЬКО в соответсвующей теме автора. Любые другие темы будут удалены, а авторы понесут наказание.

Веб Глобальная система регистрации и авторизации

Тема в разделе "Веб-обвязки и лаунчеры", создана пользователем danilko, 28 дек 2014.

?

Нужна

  1. Да, главное допиливай

    40 голосов
    65,6%
  2. Нет, нафиг не надо

    21 голосов
    34,4%
  1. Автор темы
    danilko

    danilko Старожил Пользователь

    Баллы:
    103
    Довольно много людей хотели реализовать единую систему авторизации\регистрации игроков, но как-то ни кто ничего так и не предоставил. По этому я решил поднять такую систему самостоятельно.
    На данный момент функционал следующий:
    • Регистрация по E-mail, логину и паролю (E-mail пока не проверяется)
    • Авторизация по E-mail и паролю
    • Выдача uuid каждому аккаунту при регистрации
    • Выдача uuid по E-mail
    • Выдача логина по E-mail
    • Выдача логина по uuid
    • Выдача E-mail по uuid
    Пишите пока, что нужно добавить.

    Сразу говорю, что данная система не будет похожа на Mojang`овскую, по этому просто поправить ссылочки в клиенте и сервере не получится. Делаю это из соображений разгрузки главного сервера, ибо потом могут начаться проблемы, если все-таки будут пользоваться. (На данный момент это сайтик на хостингере, мб потом спонсор найдется на норм хост)

    По поводу защиты. SQL-инъекции не пройдут, ибо не SQL не используется.
    Защиты от брута и не существующего E-mail пока нет, позже напишу.
    Пока-что чистка БД ручная, позже думаю дописать удаление не активированных аккаунтов и тех, что старше 1 года. (я думаю, этого будет достаточно)

    Совместимости с системой от Mojang нет и не планируется, если будет много просьб, то сделаю.
     
    Последнее редактирование: 6 янв 2015
  2. Хостинг MineCraft
    <
  3. Автор темы
    danilko

    danilko Старожил Пользователь

    Баллы:
    103
    И так, ниже речь пойдет о технической части системы.
    Параметры: email - E-mail пользователя, username - имя\логин, password - пароль, uuid - uuid пользователя. Данные описания параметров применимы ко всем запросам.

    1)Авторизация
    Для прохождения авторизации необходимо выполнить следующий GET-запрос:
    http://msc-auth.16mb.com/auth.php?email=test@test.ru&password=pass
    Возможные ответы:
    not_registred - пользователь с таким E-mail не зарегистрирован
    bad_auth - не верный логин или пароль
    Все остальное строка вида "uuid:username"

    2)Регистрация
    http://msc-auth.16mb.com/reg.php?email=test@test.ru&username=test&password=test
    Возможные ответы:
    bad_email - не верный формат E-mail
    already_registred - Пользователь с таким E-mail уже зарегистрирован
    login_busy - логин занят
    aborted - регистрация отменена защитой
    Все остальное строка вида "uuid:username"

    3)Конвертация E-mail в username
    (Просьба не вызывать данный скрипт каждый раз, когда необходимо получить username, как вариант сохраняйте в сессии или кешируйте)
    http://msc-auth.16mb.com/emailtousername.php?email=test@test.ru
    Варианты ответа:
    not_registred - пользователь не зарегистрирован
    Все остальные ответы можно считать за username.

    4)Конвертация E-mail в uuid
    http://msc-auth.16mb.com/emailtouuid.php?email=test@test.ru
    Варианты ответа:
    not_registred - не зарегистрирован
    Все остальное uuid`ы игроков.

    5)Конвертация uuid в username
    http://msc-auth.16mb.com/uuidtousername.php?uuid=cbc4c582-9ca1-03f2-3a20-b31dbf953d051
    Варианты ответа:
    not_regisred - не зарегистрирован
    Все остальное можно считать username`ами.
    6)Конвертация uuid в email
    http://msc-auth.16mb.com/uuidtoemail.php?uuid=cbc4c582-9ca1-03f2-3a20-b31dbf953d051
    Варианты ответа:
    not_found - uuid не найден в базе
    Все остальное мейлы.
    7)Конвертация username в uuid
    http://msc-auth.16mb.com/usernametouuid.php?username=test
    Варианты ответа:
    not_found - логин не найден
    Все остальное uuid`ы
     
    Последнее редактирование: 2 янв 2015
  4. log_inil

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

    Баллы:
    88
    Смысл отправлять чисто "ok" нужно хоть хэшш-сумму ответа сделать (система авторизации идёт же как Api?),
    Можно просто подправить хост у себя на компютере и всегда слать "ок"
     
  5. Автор темы
    danilko

    danilko Старожил Пользователь

    Баллы:
    103
    Да, как API.
    Я не знаю, сначала хотел отправлять "uuid:username", но решил пока сделать просто "ok".
     
  6. log_inil

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

    Баллы:
    88
    ....[DOUBLEPOST=1419793404,1419793333][/DOUBLEPOST]
    Кстати, а смысл системы? Крашнится(приелось слово...) упадёт и всё.... Есть же на этом свете прекрасные люди.
     
  7. Автор темы
    danilko

    danilko Старожил Пользователь

    Баллы:
    103
    UPD: Сделал выдачу строки вида "uuid:username" при успешной авторизации\регистрации
    Там крашится то нечему, как мне кажется. А на случай ддоса нужно делать локальное кеширование. (Как в винде авторизация через сервера Microsoft работает) Ну а если уж совсем плохо будет, то у меня есть резервный сервер, на который можно будет временно перенаправить траффик.(Я думаю, что на нем не упадет при слабеньком ддосе, какой обычно устраивают на сайты хостингера)
     
  8. log_inil

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

    Баллы:
    88
    Крашится - "Имел ввиду про ддос"
     
  9. Автор темы
    danilko

    danilko Старожил Пользователь

    Баллы:
    103
    Про него ведь тоже написал.
    Для начала сойдет и такая ситуация с этим вопросом, а там уж полюбому придётся переезжать на другое железо, так как БД не резиновая, да и запросов явно не мало будет при сильном внедрении.
     
  10. log_inil

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

    Баллы:
    88
    Можно на несколько серверов поделить.
     
  11. ImAlive

    ImAlive Старожил Пользователь

    Баллы:
    123
    Skype:
    makcvsdog
    Тоже думаю начать реализацию подобной системы, можно будет потом глянуть у кого чего получится)
    Только вот думаю, стоит ли вообще этим заниматься, minecraft уже не сильно популярен.
     
  12. log_inil

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

    Баллы:
    88
    Это так, вот только дота не стареет...... Если проект интересный и ну сами понимаете. То в принципе ему не нужен так сказать вспомогательный друг от которого он зависит....
     
  13. Автор темы
    danilko

    danilko Старожил Пользователь

    Баллы:
    103
    Можно, но это синхронизацию надо реализовывать. В принципе, если пользоваться будут и будет возможность, то сделаю.
    Ну, популярен не популярен, а кто-то все равно останется ещё долго. А этих "кого-то" для меня достаточно.
     
  14. log_inil

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

    Баллы:
    88
    У меня получится несколько баз(возможно даже сразу запилиных на 0u1.ru), которые будут вытаскивать инфу (и подтверждать её достоверность )[DOUBLEPOST=1419795111,1419795064][/DOUBLEPOST]
    Синхронно? всымысле? :nerd:
     
  15. ImAlive

    ImAlive Старожил Пользователь

    Баллы:
    123
    Skype:
    makcvsdog
    Вы это точно мне писали?
     
  16. Автор темы
    danilko

    danilko Старожил Пользователь

    Баллы:
    103
    Ну а что ты будешь делать, если сервер БД упадет ? Допустим, если будет очень много запросов со всех шлюзов сразу, то чисто теоритически можно и БД положить.
     
  17. log_inil

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

    Баллы:
    88
    Да, вы написали " (можно будет потом глянуть у кого чего получится)", я ответил что получится примерно у меня.[DOUBLEPOST=1419795472,1419795314][/DOUBLEPOST]
    Ну разделить всех юзеров на несколько баз, фильтровать активность(уже переходит в защиту от DDOS)
    Ещё, например на гос-сайтах (pgu.mos.ru) есть моменты где "Подождите пожалуйста, данный сервер обрабатывает большое количество информации.".
     
  18. ImAlive

    ImAlive Старожил Пользователь

    Баллы:
    123
    Skype:
    makcvsdog
    Можно просто кэшировать данные и не делать лишние запросы к базе, т.к. пользовательских данных на сервере мало и они часто не меняются(чаще всего вообще не меняются), то можно их смело кэшировать и не дрочить базу попусту.
     
  19. Jetty

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

    Баллы:
    78
    Skype:
    fenix404notfound
    Имя в Minecraft:
    fenix25
    Вы уверены, что стоит использовать именно GET запросы? По-моему, лучше POST.
     
  20. Topic

    Topic Старожил Пользователь

    Баллы:
    103
    Skype:
    miner-life
    Имя в Minecraft:
    Topic
    С такой системой, тебя любой школьник обычным пингом положит.
     
  21. Reality_SC

    Reality_SC Старожил Пользователь

    Баллы:
    123
    Имя в Minecraft:
    Reality_SC
    Я делаю аналог, технически почти всё готово, проблемы с фронтендом только, плюс до середины января занят, так что пока не буду афишировать.
     

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