// Если игрок пытается авторизоваться гостем, но проект запрещает, нет смысла продолжать выполнение скрипта returnWrongCredentials(); } } } // Регистрация лицензионного аккаунта if ($projectInfo['allow_license_auth']) { $mojangResponse = mojangAuthenticate($username, $password, $clientToken); if ($mojangResponse != false && isset($mojangResponse["OK"]) == false) { $mojangProfile = generateMojangAccount($mojangResponse); returnProfile($mojangProfile); } } // Попытка авторизации через предоставленный скрипт проекта if (isset($projectCode) && $projectInfo['allow_script_auth']) { $script = $projectInfo['url_auth_script']; // Генерация зашифрованного сообщения $encryption = setupEncryption($projectInfo['code'], $projectInfo['secret_keyword']); $payload = json_encode(array("username" => $username, "password" => $password, "rnd_salt" => md5(uniqid()))); $encoded = third_party_encrypt($payload, $encryption); // Сделать вызов на сторонний скрипт $projectResponse = curlPostRequest($script, $encoded); if (is_array($projectResponse)) { $projectResponse["projectCode"] = $projectCode; $projectResponse["accessToken"] = $accessToken; $projectResponse["clientToken"] = $clientToken; $projectProfile = generateProjectAccount($projectResponse); returnProfile($projectProfile); } } returnWrongCredentials();
function mojangValidate($accessToken) { $mojangPayload = array("accessToken" => $accessToken); $mojangResponce = curlPostRequest('https://authserver.mojang.com/validate', $mojangPayload); return isset($mojangResponce['error']) ? false : $mojangResponce; }