2026-05-25 16:10:18 +08:00

49 lines
1.3 KiB
TypeScript

import { NextRequest, NextResponse } from 'next/server'
import { getServerSession } from 'next-auth'
import { authOptions } from '@/lib/auth'
import { prisma } from '@/lib/prisma'
import { isInitialAdminPasswordChangeRequired } from '@/lib/system-init'
export const dynamic = 'force-dynamic'
// 兼容旧接口命名:当前检查的是“系统初始化后是否仍要求首次改密”
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 }
)
}
const mustChangePassword = await isInitialAdminPasswordChangeRequired(user.id)
return NextResponse.json({
isDefaultPassword: mustChangePassword,
mustChangePassword,
email: user.email,
username: user.username
})
} catch (error: any) {
console.error('检查默认密码失败:', error)
return NextResponse.json(
{ error: '检查失败' },
{ status: 500 }
)
}
}