fix: 修改文件名大小写
This commit is contained in:
148
linuxdo.php
148
linuxdo.php
@@ -1,95 +1,10 @@
|
||||
<?php
|
||||
include 'config.php';
|
||||
include 'function.php';
|
||||
|
||||
$act = input('act');
|
||||
$mySQLi = new mysqli($_CONFIG_DB['db_host'], $_CONFIG_DB['db_user'], $_CONFIG_DB['db_password'], $_CONFIG_DB['db_name'], $_CONFIG_DB['db_port']);
|
||||
if ($mySQLi->connect_errno)
|
||||
exit($mySQLi->connect_error);
|
||||
$mySQLi->set_charset($_CONFIG_DB['db_charset']);
|
||||
|
||||
switch ($act) {
|
||||
case 'bind':
|
||||
$stmt1 = $mySQLi->prepare('insert into `player_connect_threeparty` (player_id, type, connect_id) values(?, `linuxdo`, ?)');
|
||||
$stmt1->bind_param('ssisiissis', input('account'), input('connect_id'));
|
||||
$stmt1->execute();
|
||||
$stmt1->close();
|
||||
$stmt2 = $mySQLi->prepare('select password from player where username=?');
|
||||
$stmt2->bind_param('s', input('account'));
|
||||
$stmt2->execute();
|
||||
$result = $stmt2->get_result();
|
||||
$data = $result->fetch_array();
|
||||
$result->free_result();
|
||||
$stmt2->close();
|
||||
exit(json_encode($data));
|
||||
default:
|
||||
$code = $_GET['code'];
|
||||
|
||||
$key = base64_encode($_LINUXDO_CONNECT['client_id'] . ':' . $_LINUXDO_CONNECT['client_secret']);
|
||||
|
||||
$header = [
|
||||
'Authorization: Basic ' . $key
|
||||
];
|
||||
|
||||
$post = http_build_query([
|
||||
'grant_type' => 'authorization_code',
|
||||
'code' => $code,
|
||||
'redirect_uri' => ''
|
||||
]);
|
||||
|
||||
$getTokenRes = get_curl('https://connect.linux.do/oauth2/token', $post, 0, 0, $header);
|
||||
|
||||
$getTokenArr = json_decode($getTokenRes, true);
|
||||
|
||||
if (isset($getTokenArr['access_token'])) {
|
||||
$access_token = $getTokenArr['access_token'];
|
||||
|
||||
$header = [
|
||||
'Authorization: Bearer ' . $access_token
|
||||
];
|
||||
|
||||
$getUserRes = get_curl('https://connect.linux.do/api/user', 0, 0, 0, $header);
|
||||
|
||||
$getUserArr = json_decode($getUserRes, true);
|
||||
$userInfo = [];
|
||||
|
||||
if (isset($getUserArr['id'])) {
|
||||
// 保存每个用户数据项到 session 中
|
||||
$userInfo['user_id'] = $getUserArr['id'];
|
||||
$userInfo['user_sub'] = $getUserArr['sub'];
|
||||
$userInfo['user_username'] = $getUserArr['username'];
|
||||
$userInfo['user_login'] = $getUserArr['login'];
|
||||
$userInfo['user_name'] = $getUserArr['name'];
|
||||
$userInfo['user_email'] = $getUserArr['email'];
|
||||
$userInfo['user_avatar_template'] = $getUserArr['avatar_template'];
|
||||
$userInfo['user_avatar_url'] = $getUserArr['avatar_url'];
|
||||
$userInfo['user_active'] = $getUserArr['active'];
|
||||
$userInfo['user_trust_level'] = $getUserArr['trust_level'];
|
||||
$userInfo['user_silenced'] = $getUserArr['silenced'];
|
||||
$userInfo['user_external_ids'] = $getUserArr['external_ids'] ?? 'null';
|
||||
$userInfo['user_api_key'] = $getUserArr['api_key'];
|
||||
}
|
||||
|
||||
// 判断是否已经关联
|
||||
$stmt = $mySQLi->prepare('select player_id from player_connect_threeparty where type=`linuxdo` and connect_id=?');
|
||||
$stmt->bind_param('s', $userInfo['user_username']);
|
||||
$stmt->execute();
|
||||
$result = $stmt->get_result();
|
||||
$row = $result->fetch_array();
|
||||
if (!empty($row)) {
|
||||
$getPlayer = $mySQLi->prepare('select username,password from player where id=?');
|
||||
$getPlayer->bind_param('s', $row['player_id']);
|
||||
$getPlayer->execute();
|
||||
$res = $getPlayer->get_result();
|
||||
$account = $res->fetch_array();
|
||||
exit("<script language='javascript'>window.location.href='/play?account={$account['username']}&token={$account['password']}';</script>");
|
||||
}
|
||||
//echo json_encode($getUserArr);
|
||||
} else {
|
||||
echo json_encode($getTokenArr);
|
||||
}
|
||||
break;
|
||||
}
|
||||
// LINUXDO三方登录
|
||||
$_LINUXDO_CONNECT = [
|
||||
'client_id' => 'tfKevot5lSwB5A5gcqPQMMhaXDLjib0P',
|
||||
'client_secret' => '95KWP8sbRIUu5df7gBo5fIztz6ISmvfa'
|
||||
];
|
||||
|
||||
// cURL 函数
|
||||
function get_curl($url, $post = 0, $referer = 0, $cookie = 0, $header = 0, $ua = 0, $nobaody = 0, $addheader = 0)
|
||||
@@ -135,6 +50,46 @@ function get_curl($url, $post = 0, $referer = 0, $cookie = 0, $header = 0, $ua =
|
||||
curl_close($ch);
|
||||
return $ret;
|
||||
}
|
||||
|
||||
$code = $_GET['code'];
|
||||
|
||||
$key = base64_encode($_LINUXDO_CONNECT['client_id'] . ':' . $_LINUXDO_CONNECT['client_secret']);
|
||||
|
||||
$header = [
|
||||
'Authorization: Basic ' . $key
|
||||
];
|
||||
|
||||
$post = http_build_query([
|
||||
'grant_type' => 'authorization_code',
|
||||
'code' => $code,
|
||||
'redirect_uri' => ''
|
||||
]);
|
||||
|
||||
$getTokenRes = get_curl('https://connect.linux.do/oauth2/token', $post, 0, 0, $header);
|
||||
|
||||
$getTokenArr = json_decode($getTokenRes, true);
|
||||
|
||||
if (isset($getTokenArr['access_token'])) {
|
||||
$access_token = $getTokenArr['access_token'];
|
||||
|
||||
$header = [
|
||||
'Authorization: Bearer ' . $access_token
|
||||
];
|
||||
|
||||
$getUserRes = get_curl('https://connect.linux.do/api/user', 0, 0, 0, $header);
|
||||
|
||||
$getUserArr = json_decode($getUserRes, true);
|
||||
|
||||
$checkLink = get_curl("/api?act=check&connect_id=" . $getUserArr['username']);
|
||||
|
||||
$getCheckLink = json_decode($checkLink, true);
|
||||
} else {
|
||||
$err = json_encode($getTokenArr);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
?>
|
||||
<!DOCTYPE HTML>
|
||||
<html>
|
||||
@@ -180,9 +135,10 @@ function get_curl($url, $post = 0, $referer = 0, $cookie = 0, $header = 0, $ua =
|
||||
} else {
|
||||
showTips(res.msg, 6, 'error');
|
||||
return
|
||||
})
|
||||
})
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
function registerDirect() {
|
||||
const linuxdo_account = document.getElementById("linuxdo").value;
|
||||
processLogin({ type: "1", account: linuxdo_account, password: "1", password2: "1" }, linuxdo_account)
|
||||
@@ -198,10 +154,12 @@ function get_curl($url, $post = 0, $referer = 0, $cookie = 0, $header = 0, $ua =
|
||||
</head>
|
||||
|
||||
<body oncontextmenu="return false" onselectstart="return false" ondragstart="return false">
|
||||
<?php if (empty($row)) { ?>
|
||||
<input type="hidden" id="linuxdo" value="<?= $getUserArr['username'] ?>">
|
||||
<?php if (!empty($err)) { ?>
|
||||
授权发生异常:<?= $err ?>
|
||||
<?php } elseif (empty($row)) { ?>
|
||||
<div
|
||||
style="width:400px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:flex;justify-content:center;align-items:center;flex-direction:column;">
|
||||
<input type="hidden" id="linuxdo" value="<?= $userInfo['user_username'] ?>">
|
||||
当前尚未有你的游戏账号,请选择<br>
|
||||
<a onclick="registerDirect" style="cursor:pointer;font-weight:bold">Linuxdo账号绑定</a><br>
|
||||
如果已有账号,请输入账号和密码
|
||||
|
||||
Reference in New Issue
Block a user