- 修复内置模板验证问题(builtin-video-material等) - 添加模板验证工具 lib/template-validator.ts - 创建模板系统优化需求文档(30个详细需求) - 优化上传API的模板验证逻辑 - 改进错误提示信息的清晰度 - 添加字段池和分类管理相关需求 - 完善自定义字段的创建、验证、存储逻辑 - 清理过期的 .specstory 和 .trae 文件
65 lines
1.8 KiB
TypeScript
65 lines
1.8 KiB
TypeScript
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 }
|
||
)
|
||
}
|
||
}
|
||
|