feat: 支持泛域名配置

This commit is contained in:
imsyy
2024-11-05 15:56:11 +08:00
parent 293c4d623e
commit d0dfba27dc
3 changed files with 12 additions and 2 deletions

6
.env
View File

@@ -2,7 +2,11 @@
PORT = 6688 PORT = 6688
# 允许的域名 # 允许的域名
ALLOWED_DOMAIN = "*" ALLOWED_DOMAIN = "https://api-hot.imsyy.top"
# 允许的主域名,请填写为 imsyy.top
## 若填写该项,将忽略 ALLOWED_DOMAIN
ALLOWED_HOST = "imsyy.top"
# ROBOT # ROBOT
DISALLOW_ROBOT = true DISALLOW_ROBOT = true

View File

@@ -28,7 +28,11 @@ app.use(
"*", "*",
cors({ cors({
// 可写为数组 // 可写为数组
origin: config.ALLOWED_DOMAIN, origin: (origin) => {
// 是否指定域名
const isSame = origin.endsWith(config.ALLOWED_HOST);
return isSame ? origin : config.ALLOWED_DOMAIN;
},
allowMethods: ["POST", "GET", "OPTIONS"], allowMethods: ["POST", "GET", "OPTIONS"],
allowHeaders: ["X-Custom-Header", "Upgrade-Insecure-Requests"], allowHeaders: ["X-Custom-Header", "Upgrade-Insecure-Requests"],
credentials: true, credentials: true,

View File

@@ -9,6 +9,7 @@ export type Config = {
CACHE_TTL: number; CACHE_TTL: number;
REQUEST_TIMEOUT: number; REQUEST_TIMEOUT: number;
ALLOWED_DOMAIN: string; ALLOWED_DOMAIN: string;
ALLOWED_HOST: string;
USE_LOG_FILE: boolean; USE_LOG_FILE: boolean;
RSS_MODE: boolean; RSS_MODE: boolean;
}; };
@@ -45,6 +46,7 @@ export const config: Config = {
CACHE_TTL: getNumericEnvVariable("CACHE_TTL", 3600), CACHE_TTL: getNumericEnvVariable("CACHE_TTL", 3600),
REQUEST_TIMEOUT: getNumericEnvVariable("CACHE_TTL", 6000), REQUEST_TIMEOUT: getNumericEnvVariable("CACHE_TTL", 6000),
ALLOWED_DOMAIN: getEnvVariable("ALLOWED_DOMAIN") || "*", ALLOWED_DOMAIN: getEnvVariable("ALLOWED_DOMAIN") || "*",
ALLOWED_HOST: getEnvVariable("ALLOWED_HOST") || "imsyy.top",
USE_LOG_FILE: getBooleanEnvVariable("USE_LOG_FILE", true), USE_LOG_FILE: getBooleanEnvVariable("USE_LOG_FILE", true),
RSS_MODE: getBooleanEnvVariable("RSS_MODE", false), RSS_MODE: getBooleanEnvVariable("RSS_MODE", false),
}; };