<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <title>重置密码</title>
</head>
<body>
<h2>重置密码</h2>
<form id="resetForm">
    <div>
        <label>邮箱：</label>
        <input type="email" name="email" required>
        <button type="button" id="sendResetCode">获取重置验证码</button>
    </div>
    <div>
        <label>验证码：</label>
        <input type="text" name="code" required>
    </div>
    <div>
        <label>新密码：</label>
        <input type="password" name="newPassword" required>
    </div>
    <button type="submit">重置密码</button>
</form>

<script>
    // 发送重置验证码
    document.getElementById('sendResetCode').addEventListener('click', async () => {
        const email = document.querySelector('[name=email]').value;
        if (!email) { alert('请先输入邮箱'); return; }
        const res = await fetch('/sendResetCode', {
            method: 'POST',
            headers: { 'Content-Type': 'application/json' },
            body: JSON.stringify({ email })
        });
        const json = await res.json();
        alert(json.msg || json.error);
    });

    // 提交重置请求
    document.getElementById('resetForm').addEventListener('submit', async e => {
        e.preventDefault();
        const data = {
            email:       e.target.email.value,
            code:        e.target.code.value,
            newPassword: e.target.newPassword.value
        };
        const res = await fetch('/resetPassword', {
            method: 'POST',
            headers: { 'Content-Type': 'application/json' },
            body: JSON.stringify(data)
        });
        const json = await res.json();
        alert(json.msg || json.error);
        if (res.ok && json.code === 0) {
            window.location.href = 'login.html';
        }
    });
</script>
</body>
</html>
