mirror of
https://github.com/GravitLauncher/Launcher
synced 2024-11-15 11:39:11 +03:00
81 lines
3.7 KiB
PHP
81 lines
3.7 KiB
PHP
|
<?php
|
|||
|
|
|||
|
//Секретный ключ. Внимание! должен совпадать с ключем в лаунчсервере. Пожалуйста, смените его, иначе это ставит под угрозу проект.
|
|||
|
$secretkey = '12345678';
|
|||
|
//Настройки связи с базой данных
|
|||
|
$link = mysqli_connect(
|
|||
|
'localhost', // Хост
|
|||
|
'root', // Пользователь
|
|||
|
'', // Пароль
|
|||
|
'test' // База данных
|
|||
|
);
|
|||
|
|
|||
|
// Настройка таблицы
|
|||
|
$settings = [
|
|||
|
'table' => "dle_users", // Название таблицы
|
|||
|
'usernameColumn' => "name", // Столбец с именами пользователей
|
|||
|
'uuidColumn' => "uuid", // Столбец с uuid
|
|||
|
'accessTokenColumn' => "accessToken", // Столбец с accessToken
|
|||
|
'ServerIDColumn' => "serverID" // Столбец с serverID
|
|||
|
];
|
|||
|
|
|||
|
// Не трогать
|
|||
|
// Можно повредить скрипт
|
|||
|
$AuthHandler = [
|
|||
|
'type' => filter_input(INPUT_GET, 'type', FILTER_SANITIZE_STRING),
|
|||
|
'username' => filter_input(INPUT_GET, 'username', FILTER_SANITIZE_STRING),
|
|||
|
'uuid' => filter_input(INPUT_GET, 'uuid', FILTER_SANITIZE_STRING),
|
|||
|
'accessToken' => filter_input(INPUT_GET, 'accessToken', FILTER_SANITIZE_STRING),
|
|||
|
'ServerID' => filter_input(INPUT_GET, 'ServerID', FILTER_SANITIZE_STRING),
|
|||
|
'secretKey' => filter_input(INPUT_GET, 'secretKey', FILTER_SANITIZE_STRING)
|
|||
|
];
|
|||
|
|
|||
|
if (!isset($AuthHandler['secretKey'])) {
|
|||
|
die('Не указан ключ!');
|
|||
|
}
|
|||
|
|
|||
|
if ($secretkey != $AuthHandler['secretKey']) {
|
|||
|
die('Неверный ключ!');
|
|||
|
}
|
|||
|
|
|||
|
if(!$link) {
|
|||
|
die('Ошибка подключения к базе данных');
|
|||
|
}
|
|||
|
|
|||
|
if(isset($AuthHandler['type'])) {
|
|||
|
if($AuthHandler['type'] == "FetchByUUID") {
|
|||
|
if(isset($AuthHandler['uuid'])) {
|
|||
|
$result = mysqli_query($link, 'SELECT '.$settings['usernameColumn'].','.$settings['accessTokenColumn'].','.$settings['serverID'].' FROM '.$settings['table'].' WHERE '.$settings['uuidColumn'].'="'.$AuthHandler['uuid'].'" LIMIT 1') or die($link->error);
|
|||
|
$row = $result->fetch_assoc();
|
|||
|
mysqli_free_result($result);
|
|||
|
mysqli_close($link);
|
|||
|
die($row[$settings['usernameColumn']] + ':' + $row[$settings['accessTokenColumn']] + ':' + $row[$settings['serverID']]);
|
|||
|
}
|
|||
|
if($AuthHandler['type'] == "FetchByUsername") {
|
|||
|
if(isset($AuthHandler['uuid'])) {
|
|||
|
$result = mysqli_query($link, 'SELECT '.$settings['uuidColumn'].','.$settings['accessTokenColumn'].','.$settings['serverID'].' FROM '.$settings['table'].' WHERE '.$settings['usernameColumn'].'="'.$AuthHandler['username'].'" LIMIT 1') or die($link->error);
|
|||
|
$row = $result->fetch_assoc();
|
|||
|
mysqli_free_result($result);
|
|||
|
mysqli_close($link);
|
|||
|
die($row[$settings['uuidColumn']] + ':' + $row[$settings['accessTokenColumn']] + ':' + $row[$settings['serverID']]);
|
|||
|
}
|
|||
|
|
|||
|
// Обновление строк
|
|||
|
|
|||
|
if($AuthHandler['type'] == "SetAccessTokenAndUUID") {
|
|||
|
$result = mysqli_query($link, 'UPDATE '.$settings['table'].' SET '.$settings['accessTokenColumn'].'="'.$AuthHandler['accessToken'].'" WHERE '.$settings['usernameColumn'].'="'.$AuthHandler['username'].'"') or die($link->error);
|
|||
|
$result1 = mysqli_query($link, 'UPDATE '.$settings['table'].' SET '.$settings['uuidColumn'].'="'.$AuthHandler['uuid'].'" WHERE '.$settings['usernameColumn'].'="'.$AuthHandler['username'].'"') or die($link->error);
|
|||
|
mysqli_close($link);
|
|||
|
die('OK');
|
|||
|
}
|
|||
|
if($AuthHandler['type'] == "SetServerID") {
|
|||
|
$result = mysqli_query($link, 'UPDATE '.$settings['table'].' SET '.$settings['ServerIDColumn'].'="'.$AuthHandler['serverID'].'" WHERE '.$settings['uuidColumn'].'="'.$AuthHandler['uuid'].'"') or die($link->error);
|
|||
|
mysqli_close($link);
|
|||
|
die('OK');
|
|||
|
}
|
|||
|
die('FAIL!');
|
|||
|
} else {
|
|||
|
die('Type not set!');
|
|||
|
}
|
|||
|
?>
|