Advertisement
makkarpov

Minecraft auth

Sep 2nd, 2013
36
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.54 KB | None | 0 0
  1. Примерный ход авторизации майна (до версии 1.6.2, там все кардинально перепилили, но, я думаю, врятли там сложно адаптировать):
  2.  
  3. ----------- ЛАУНЧЕР -----------------
  4.  
  5. 1) Юзер вводит логин и пароль
  6.  
  7. --> POST /auth/auth.php
  8. --> user=Username&passwd=Password&version=14
  9. <-- ok:a47e358832722c25
  10.  
  11. Где a47... - сессионный токен.
  12.  
  13. 2) Лаунчер запускает клиент, передавая ему имя юзера и токен. Таким образом, клиент пароля уже не знает
  14.  
  15. ------------ КЛИЕНТ -----------------
  16.  
  17. Юзер заходит на сервер. В процессе хендшейка с сервером на основании его публичного ключа, сессионного симметричного ключа и еще какой-то херни генерируется хеш. Допустим, у нас получился хеш "8b62ef83966595d2815493261ea2f051"
  18.  
  19. Клиент посылает запрос вида:
  20.  
  21. --> GET /auth/joinserver.php
  22. --> user=Username&sessionId=a47e358832722c25&serverId=8b62ef83966595d2815493261ea2f051
  23. <-- OK
  24.  
  25. Сервер должен вернуть OK или описание ошибки, например, не подошел сессионный токен. Если вернулась ошибка - коннект прерывается. Клиент отправляет серверу пакет, что с его стороны авторизация закончилась и сервер может приступать к проверке.
  26.  
  27. ------------ СЕРВЕР ---------------------
  28.  
  29. Сервер посылает запрос вида:
  30.  
  31. --> GET /auth/checkserver.php
  32. --> user=Username&serverId=8b62ef83966595d2815493261ea2f051
  33. <-- YES
  34.  
  35. Если вернулась строка "YES" - клиент пропускается на сервер. Если не "YES" - то кикается с ошибкой "Failed to verify username". Таким образом, сервер не знает ни пароля, ни сессионного токена клиента.
  36.  
  37. Имена параметров и форматы ответов могут быть другими, но суть, я думаю, ясна. При отключеном online-mode этот шаг пропускается. Для более подробной информации есть http://wiki.vg/Protocol_Encryption
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement