예제 #1
0
            // Если игрок пытается авторизоваться гостем, но проект запрещает, нет смысла продолжать выполнение скрипта
            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;
}