import { NextRequest, NextResponse } from 'next/server' import { PasswordResetService } from '@/lib/services/password-reset-service' export async function POST(request: NextRequest) { try { const { token, password } = await request.json() if (!token || !password) { return NextResponse.json( { error: '請提供重設 token 和新密碼' }, { status: 400 } ) } if (password.length < 6) { return NextResponse.json( { error: '密碼長度至少需要 6 個字符' }, { status: 400 } ) } // 驗證並使用重設 token const success = await PasswordResetService.useResetToken(token, password) if (success) { return NextResponse.json({ success: true, message: '密碼重設成功,請使用新密碼登入' }) } else { return NextResponse.json( { error: '無效或已過期的重設 token' }, { status: 400 } ) } } catch (error) { console.error('密碼重設錯誤:', error) return NextResponse.json( { error: error.message || '重設密碼時發生錯誤' }, { status: 500 } ) } } export async function GET(request: NextRequest) { try { const { searchParams } = new URL(request.url) const token = searchParams.get('token') if (!token) { return NextResponse.json( { error: '缺少重設 token' }, { status: 400 } ) } // 驗證 token 是否有效 const tokenInfo = await PasswordResetService.validateResetToken(token) if (tokenInfo) { return NextResponse.json({ success: true, valid: true, message: 'Token 有效,可以重設密碼' }) } else { return NextResponse.json( { error: '無效或已過期的重設 token' }, { status: 400 } ) } } catch (error) { console.error('驗證 token 錯誤:', error) return NextResponse.json( { error: '驗證 token 時發生錯誤' }, { status: 500 } ) } }