WuYongJie 542c7bcc49 feat: 优化自定义上传模板系统
- 修复内置模板验证问题(builtin-video-material等)
- 添加模板验证工具 lib/template-validator.ts
- 创建模板系统优化需求文档(30个详细需求)
- 优化上传API的模板验证逻辑
- 改进错误提示信息的清晰度
- 添加字段池和分类管理相关需求
- 完善自定义字段的创建、验证、存储逻辑
- 清理过期的 .specstory 和 .trae 文件
2025-12-13 14:26:43 +08:00

65 lines
1.8 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import { NextRequest, NextResponse } from 'next/server'
import { getServerSession } from 'next-auth'
import { authOptions } from '@/lib/auth'
import { prisma } from '@/lib/prisma'
export const dynamic = 'force-dynamic'
import bcrypt from 'bcryptjs'
// 检查用户是否使用默认密码
export async function GET(req: NextRequest) {
try {
const session = await getServerSession(authOptions)
if (!session?.user?.email) {
return NextResponse.json(
{ error: '未登录' },
{ status: 401 }
)
}
const user = await prisma.user.findUnique({
where: { email: session.user.email }
})
if (!user) {
return NextResponse.json(
{ error: '用户不存在' },
{ status: 404 }
)
}
// 只针对初始管理员账号(admin@flnxi.com)检查默认密码
// 从环境变量读取初始管理员邮箱,如果没有则使用默认值
const initAdminEmail = process.env.INIT_ADMIN_EMAIL || 'admin@flnxi.com'
// 只有当前用户是初始管理员账号时才检查默认密码
const isInitialAdmin = user.email === initAdminEmail || user.email === 'admin@flnxi.com'
if (!isInitialAdmin) {
// 非初始管理员账号,不需要检查默认密码
return NextResponse.json({
isDefaultPassword: false,
email: user.email,
username: user.username
})
}
// 检查密码是否为默认密码 88888888
const isDefaultPassword = await bcrypt.compare('88888888', user.password)
return NextResponse.json({
isDefaultPassword,
email: user.email,
username: user.username
})
} catch (error: any) {
console.error('检查默认密码失败:', error)
return NextResponse.json(
{ error: '检查失败' },
{ status: 500 }
)
}
}