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

  • Автор темы Автор темы byxar
  • Дата начала Дата начала
я правильно понял, как работает эта система. Нужно интегрировать её в лаунчер не из этого топика.
лаунчер -> скрипт(joinserver.php) <-> сервер -> игра
клиент -> скрипт(joinserver.php) <-> сервер
В первом случае по моей схеме видно, что лаунчер запрашивает данные у скрипта, скрипт лезет в базу, берёт данные и кидает на сервер, если данные проходят то пускает на сервер.
Во втором случает если кто-то другой использует не наш клиент\лаунчер запрос не проходит а следовательно не пускает.
Я просто хочу сделать систему с помощью которой на сервер сможет зайти только игрок использующий наш клиент\лаунчер. Посмотрел Ваши скрипты, там половина лишнего, но думаю что смогу переделать) Мне главное правильно проследить алгоритм.
 
убери это лишнее я зайду и снесу тебе все
 
хмм, не под силу понять? :)
Смотря о ком ты. Вроде запостили достаточно информации.
Можно в пост запросе послать некую строку, а в скрипте авторизации проверять ее. Это проще, чем запускать mcp и рыть кучу файлов.
 
Смотря о ком ты. Вроде запостили достаточно информации.
Можно в пост запросе послать некую строку, а в скрипте авторизации проверять ее. Это проще, чем запускать mcp и рыть кучу файлов.
ну получается что придётся править 2 файла на клиенте, один на сервере и дописывать кое что в лаунчер. Или можно ещё как-то упростить? Мне авторизация не нужна в лаунчере, просто сделать какую-то проверку, стартует игрок через лаунчер или использует что-то другое. Во втором случае, просто игнорировать, в первом запускать...
 
ну получается что придётся править 2 файла на клиенте, один на сервере и дописывать кое что в лаунчер. Или можно ещё как-то упростить? Мне авторизация не нужна в лаунчере, просто сделать какую-то проверку, стартует игрок через лаунчер или использует что-то другое. Во втором случае, просто игнорировать, в первом запускать...
Говоря о пирогах, пора бы спать идти. Тормознул я. В любом случае придется следовать статье, если нужна проверка клиента. Печаль.
 
я правильно понял, как работает эта система. Нужно интегрировать её в лаунчер не из этого топика.

Система работает так:
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, если там два значения и используется в двух местах?
 
Авторизация работает, но клиент не обновляется, пишет нет файла lwjgl.jar:(
Как вообще клиент нужно заливать в папку на сайте(http://s3.amazonaws.com/MinecraftDownload/)?
Уже пробывал и .minecraft, и bin, и client.zip заливать, всё равно.
 
Можно-ли прикрутить к системе с регистрацией и прочим цепляемость к форумам?
 
Можно, нужно ткнуть носом систему в таблицу с юзерами, и (если необходимо), модифицировать алгоритм хэширования
 
Разобрался с Unable to download, забыл слеш в конце поставить)
Теперь новая проблема: при скачивании проценты идут примерно от -1000000 до 1000000, а не от 0 до 100
 
Назад
Верх