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

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

Нужна

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

    41 голосов 65,1%
  • Нет, нафиг не надо

    22 голосов 34,9%

danilko

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

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

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

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

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

2)Регистрация
http://msc-auth.16mb.com/[email protected]&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/[email protected]
Варианты ответа:
not_registred - пользователь не зарегистрирован
Все остальные ответы можно считать за username.

4)Конвертация E-mail в uuid
http://msc-auth.16mb.com/[email protected]
Варианты ответа:
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`ы
 
Последнее редактирование:
Смысл отправлять чисто "ok" нужно хоть хэшш-сумму ответа сделать (система авторизации идёт же как Api?),
Можно просто подправить хост у себя на компютере и всегда слать "ок"
 
Смысл отправлять чисто "ok" нужно хоть хэшш-сумму ответа сделать (система авторизации идёт же как Api?),
Можно просто подправить хост у себя на компютере и всегда слать "ок"
Да, как API.
Я не знаю, сначала хотел отправлять "uuid:username", но решил пока сделать просто "ok".
 
Да, как API.
Я не знаю, сначала хотел отправлять "uuid:username", но решил пока сделать просто "ok".
....
Да, как API.
Я не знаю, сначала хотел отправлять "uuid:username", но решил пока сделать просто "ok".
Кстати, а смысл системы? Крашнится(приелось слово...) упадёт и всё.... Есть же на этом свете прекрасные люди.
 
UPD: Сделал выдачу строки вида "uuid:username" при успешной авторизации\регистрации
....

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

Там крашится то нечему, как мне кажется. А на случай ддоса нужно делать локальное кеширование. (Как в винде авторизация через сервера Microsoft работает) Ну а если уж совсем плохо будет, то у меня есть резервный сервер, на который можно будет временно перенаправить траффик.(Я думаю, что на нем не упадет при слабеньком ддосе, какой обычно устраивают на сайты хостингера)
Крашится - "Имел ввиду про ддос"
 
Крашится - "Имел ввиду про ддос"
Про него ведь тоже написал.
Для начала сойдет и такая ситуация с этим вопросом, а там уж полюбому придётся переезжать на другое железо, так как БД не резиновая, да и запросов явно не мало будет при сильном внедрении.
 
Про него ведь тоже написал.
Для начала сойдет и такая ситуация с этим вопросом, а там уж полюбому придётся переезжать на другое железо, так как БД не резиновая, да и запросов явно не мало будет при сильном внедрении.
Можно на несколько серверов поделить.
 
Тоже думаю начать реализацию подобной системы, можно будет потом глянуть у кого чего получится)
Только вот думаю, стоит ли вообще этим заниматься, minecraft уже не сильно популярен.
 
Тоже думаю начать реализацию подобной системы, можно будет потом глянуть у кого чего получится)
Только вот думаю, стоит ли вообще этим заниматься, minecraft уже не сильно популярен.
Это так, вот только дота не стареет...... Если проект интересный и ну сами понимаете. То в принципе ему не нужен так сказать вспомогательный друг от которого он зависит....
 
Можно на несколько серверов поделить.
Можно, но это синхронизацию надо реализовывать. В принципе, если пользоваться будут и будет возможность, то сделаю.
Тоже думаю начать реализацию подобной системы, можно будет потом глянуть у кого чего получится)
Только вот думаю, стоит ли вообще этим заниматься, minecraft уже не сильно популярен.
Ну, популярен не популярен, а кто-то все равно останется ещё долго. А этих "кого-то" для меня достаточно.
 
Тоже думаю начать реализацию подобной системы, можно будет потом глянуть у кого чего получится)
Только вот думаю, стоит ли вообще этим заниматься, minecraft уже не сильно популярен.
У меня получится несколько баз(возможно даже сразу запилиных на 0u1.ru), которые будут вытаскивать инфу (и подтверждать её достоверность )
Можно, но это синхронизацию надо реализовывать. В принципе, если пользоваться будут и будет возможность, то сделаю.

Ну, популярен не популярен, а кто-то все равно останется ещё долго. А этих "кого-то" для меня достаточно.
Синхронно? всымысле? :nerd:
 
Вы это точно мне писали?
Да, вы написали " (можно будет потом глянуть у кого чего получится)", я ответил что получится примерно у меня.
Ну а что ты будешь делать, если сервер БД упадет ? Допустим, если будет очень много запросов со всех шлюзов сразу, то чисто теоритически можно и БД положить.
Ну разделить всех юзеров на несколько баз, фильтровать активность(уже переходит в защиту от DDOS)
Ещё, например на гос-сайтах (pgu.mos.ru) есть моменты где "Подождите пожалуйста, данный сервер обрабатывает большое количество информации.".
 
Да, вы написали " (можно будет потом глянуть у кого чего получится)", я ответил что получится примерно у меня.

Ну разделить всех юзеров на несколько баз, фильтровать активность(уже переходит в защиту от DDOS)
Ещё, например на гос-сайтах (pgu.mos.ru) есть моменты где "Подождите пожалуйста, данный сервер обрабатывает большое количество информации.".
Можно просто кэшировать данные и не делать лишние запросы к базе, т.к. пользовательских данных на сервере мало и они часто не меняются(чаще всего вообще не меняются), то можно их смело кэшировать и не дрочить базу попусту.
 
Вы уверены, что стоит использовать именно GET запросы? По-моему, лучше POST.
 
Довольно много людей хотели реализовать единую систему авторизации\регистрации игроков, но как-то ни кто ничего так и не предоставил. По этому я решил поднять такую систему самостоятельно.
На данный момент функционал следующий:
  • Регистрация по E-mail, логину и паролю (E-mail пока не проверяется)
  • Авторизация по E-mail и паролю
  • Выдача uuid каждому аккаунту при регистрации
  • Выдача uuid по E-mail
  • Выдача логина по E-mail
  • Выдача логина по uuid
  • Выдача E-mail по uuid
Пишите пока, что нужно добавить.

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

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

Совместимости с системой от Mojang нет и не планируется, если будет много просьб, то сделаю.
С такой системой, тебя любой школьник обычным пингом положит.
 

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

Назад
Верх