You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
BiliRoaming-PHP-Server/auth.php

62 lines
1.8 KiB
PHP

<?php
// 防止外部破解
if(!defined('SYSTEM')) {exit(BLOCK_RETURN);}
if (ACCESS_KEY != "") { // access_key 存在
if (BLOCK_TYPE == "blacklist") { // 黑名单鉴权
$url = "https://black.qimo.ink/?access_key=".ACCESS_KEY;
$out = get_webpage($url);
// 如果是黑名单
if ($out == "ban" || $baned == 1) {
if (REPLACE_TYPE == "hlw" || REPLACE_TYPE == "tom" || REPLACE_TYPE == "xyy") { // 替换成葫芦娃、猫和老鼠、喜羊羊
include ("replace.php");
replace();
}else {
exit(BLOCK_RETURN);
}
}
}else if (BLOCK_TYPE == "whitelist") { // 白名单鉴权
if (SAVE_CACHE == 1) { // 是否开启缓存
$uid = get_uid_fromsql(); // 从数据库获取
}else{
$uid = get_uid(); // 从API获取
}
// 是否在白名单内
if (!in_array($uid, $WHITELIST) || $baned == 1) {
if (REPLACE_TYPE == "hlw" || REPLACE_TYPE == "tom" || REPLACE_TYPE == "xyy" || REPLACE_TYPE == "404") { // 替换成葫芦娃、猫和老鼠、喜羊羊、肥肠抱歉
include ("replace.php");
replace();
}else {
exit(BLOCK_RETURN);
}
}
}
}else{ // access_key 不存在
if (BLOCK_TYPE == "whitelist" || NEED_LOGIN == 1) { // 白名单模式 或 黑名单模式+需要登录
exit(BLOCK_RETURN);
}
}
function get_uid() {
$sign = md5("access_key=".ACCESS_KEY."&appkey=".APPKEY."&ts=".TS.APPSEC);
$url = "https://app.bilibili.com/x/v2/account/myinfo?access_key=".ACCESS_KEY."&appkey=".APPKEY."&ts=".TS."&sign=".$sign;
$output = get_webpage($url);
$array = json_decode($output, true);
$code = $array['code'];
if ($code=="0") {
$uid = $array['data']['mid'];
}else{
$uid = "0";
}
return $uid;
}
function get_uid_fromsql() {
global $dbh;
$sqlco = "SELECT `uid` FROM `keys` WHERE `access_key` = '".ACCESS_KEY."'";
$cres = $dbh -> query($sqlco);
$vnum = $cres -> fetch();
$uid = $vnum['uid'];
return $uid;
}
?>