feat: 重构环境配置与 API 处理逻辑
更新 .env.example,补充玩家端本地开发配置说明,并新增直连 Laravel 服务及局域网访问相关配置选项。 重构 middleware.ts:使用新的 API 请求路径构建方法,提升代码清晰度与可维护性。 移除 next.config.ts 中已弃用的 API_BASE_URL 配置,简化 API 请求处理流程。 调整 lottery-http 以适配新的 API 基础地址解析机制,提升代码维护性。 优化 CSP(内容安全策略)配置,精简连接来源白名单管理,进一步增强安全性。
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
import { NextResponse, type NextRequest } from "next/server";
|
||||
|
||||
import { LOTTERY_API_V1_BASE } from "./src/api/paths";
|
||||
import { lotteryApiOrigin } from "./src/lib/lottery-api-base";
|
||||
import { generateCSP, nonCspSecurityHeaders } from "./src/lib/csp-config";
|
||||
|
||||
type RuntimeOriginsEnvelope = {
|
||||
@@ -10,9 +10,9 @@ type RuntimeOriginsEnvelope = {
|
||||
};
|
||||
};
|
||||
|
||||
async function loadRuntimeOrigins(request: NextRequest): Promise<string[]> {
|
||||
async function loadRuntimeOrigins(): Promise<string[]> {
|
||||
try {
|
||||
const url = new URL(`${LOTTERY_API_V1_BASE}/integration/runtime-origins`, request.url);
|
||||
const url = `${lotteryApiOrigin()}/api/v1/integration/runtime-origins`;
|
||||
const response = await fetch(url, {
|
||||
headers: { Accept: "application/json" },
|
||||
cache: "no-store",
|
||||
@@ -31,9 +31,9 @@ async function loadRuntimeOrigins(request: NextRequest): Promise<string[]> {
|
||||
}
|
||||
}
|
||||
|
||||
export async function middleware(request: NextRequest): Promise<NextResponse> {
|
||||
export async function middleware(_request: NextRequest): Promise<NextResponse> {
|
||||
const response = NextResponse.next();
|
||||
const runtimeOrigins = await loadRuntimeOrigins(request);
|
||||
const runtimeOrigins = await loadRuntimeOrigins();
|
||||
|
||||
response.headers.set("Content-Security-Policy", generateCSP(runtimeOrigins));
|
||||
for (const header of nonCspSecurityHeaders) {
|
||||
|
||||
Reference in New Issue
Block a user