新增登录注册背景图设置

This commit is contained in:
mtvpls
2025-12-28 12:12:11 +08:00
parent d4ae874bc0
commit ab856a02cf
7 changed files with 317 additions and 36 deletions

View File

@@ -34,12 +34,16 @@ export async function POST(request: NextRequest) {
customCSS,
enableCache,
cacheMinutes,
loginBackgroundImage,
registerBackgroundImage,
} = body as {
enableBuiltInTheme: boolean;
builtInTheme: string;
customCSS: string;
enableCache: boolean;
cacheMinutes: number;
loginBackgroundImage?: string;
registerBackgroundImage?: string;
};
// 参数校验
@@ -53,6 +57,39 @@ export async function POST(request: NextRequest) {
return NextResponse.json({ error: '参数格式错误' }, { status: 400 });
}
// 验证背景图URL格式支持多行每行一个URL
if (loginBackgroundImage && loginBackgroundImage.trim() !== '') {
const urls = loginBackgroundImage
.split('\n')
.map((url) => url.trim())
.filter((url) => url !== '');
for (const url of urls) {
if (!url.startsWith('http://') && !url.startsWith('https://')) {
return NextResponse.json(
{ error: `登录界面背景图URL格式错误${url}每个URL必须以http://或https://开头` },
{ status: 400 }
);
}
}
}
if (registerBackgroundImage && registerBackgroundImage.trim() !== '') {
const urls = registerBackgroundImage
.split('\n')
.map((url) => url.trim())
.filter((url) => url !== '');
for (const url of urls) {
if (!url.startsWith('http://') && !url.startsWith('https://')) {
return NextResponse.json(
{ error: `注册界面背景图URL格式错误${url}每个URL必须以http://或https://开头` },
{ status: 400 }
);
}
}
}
const adminConfig = await getConfig();
// 权限校验
@@ -82,6 +119,8 @@ export async function POST(request: NextRequest) {
enableCache,
cacheMinutes,
cacheVersion: cssChanged ? currentVersion + 1 : currentVersion,
loginBackgroundImage: loginBackgroundImage?.trim() || undefined,
registerBackgroundImage: registerBackgroundImage?.trim() || undefined,
};
// 写入数据库