修复AI提供商创建日志泄露API Key

This commit is contained in:
Your Name 2026-02-07 20:25:04 +08:00
parent 3a20c5a36d
commit a8445627dd

View File

@ -26,6 +26,21 @@ const updateProviderSchema = z.object({
isEnabled: z.boolean().optional(),
});
function maskApiKey(apiKey?: string) {
if (!apiKey) return undefined;
if (apiKey.length <= 8) return "****";
return `${apiKey.slice(0, 4)}****${apiKey.slice(-4)}`;
}
function sanitizeProviderPayload(payload: unknown) {
if (!payload || typeof payload !== "object") return payload;
const cloned = { ...(payload as Record<string, unknown>) };
if (typeof cloned.apiKey === "string") {
cloned.apiKey = maskApiKey(cloned.apiKey);
}
return cloned;
}
export async function GET(request: Request) {
try {
await requireAdmin();
@ -68,7 +83,7 @@ export async function POST(request: Request) {
const session = await requireAdmin();
const body = await request.json();
console.log("[Admin API] Create provider request body:", JSON.stringify(body));
console.log("[Admin API] Create provider request body:", JSON.stringify(sanitizeProviderPayload(body)));
const data = createProviderSchema.parse(body);
console.log("[Admin API] Validation passed, creating provider...");