feat: 添加邮件功能第二阶段 - 注册邮箱验证
实现注册时的邮箱验证功能: - 修改注册API支持邮箱验证流程 - 新增邮箱验证API (/api/verify-email/<token>) - 新增重发验证邮件API (/api/resend-verify-email) - 新增邮箱验证状态查询API (/api/email/verify-status) 新增文件: - templates/email/register.html - 注册验证邮件模板 - templates/verify_success.html - 验证成功页面 - templates/verify_failed.html - 验证失败页面 修改文件: - email_service.py - 添加发送注册验证邮件函数 - app.py - 添加邮箱验证相关API - database.py - 添加get_user_by_email函数 - app_config.py - 添加BASE_URL配置 - templates/register.html - 支持邮箱必填切换 - templates/login.html - 添加重发验证邮件功能 - templates/admin.html - 添加注册验证开关和BASE_URL设置 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -1215,7 +1215,7 @@
|
||||
开启后,系统将支持邮箱验证、密码重置邮件、任务完成通知等功能
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group" style="margin-bottom: 0;">
|
||||
<div class="form-group" style="margin-bottom: 10px;">
|
||||
<label style="display: flex; align-items: center; gap: 10px;">
|
||||
<input type="checkbox" id="failoverEnabled" onchange="updateEmailSettings()" style="width: auto; max-width: none;">
|
||||
启用故障转移
|
||||
@@ -1224,6 +1224,22 @@
|
||||
开启后,主SMTP配置发送失败时自动切换到备用配置
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group" style="margin-bottom: 10px;">
|
||||
<label style="display: flex; align-items: center; gap: 10px;">
|
||||
<input type="checkbox" id="registerVerifyEnabled" onchange="updateEmailSettings()" style="width: auto; max-width: none;">
|
||||
启用注册邮箱验证
|
||||
</label>
|
||||
<div style="font-size: 12px; color: #666; margin-top: 5px;">
|
||||
开启后,新用户注册需通过邮箱验证才能激活账号(优先级高于自动审核)
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group" style="margin-bottom: 0;">
|
||||
<label style="display: block; margin-bottom: 5px;">网站基础URL</label>
|
||||
<input type="text" id="baseUrl" placeholder="例如: https://example.com" style="width: 100%;" onblur="updateEmailSettings()">
|
||||
<div style="font-size: 12px; color: #666; margin-top: 5px;">
|
||||
用于生成邮件中的验证链接,留空则使用默认配置
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- SMTP配置列表 -->
|
||||
@@ -2780,6 +2796,8 @@
|
||||
const data = await response.json();
|
||||
document.getElementById('emailEnabled').checked = data.enabled;
|
||||
document.getElementById('failoverEnabled').checked = data.failover_enabled;
|
||||
document.getElementById('registerVerifyEnabled').checked = data.register_verify_enabled || false;
|
||||
document.getElementById('baseUrl').value = data.base_url || '';
|
||||
}
|
||||
} catch (error) {
|
||||
console.error('加载邮件设置失败:', error);
|
||||
@@ -2794,7 +2812,9 @@
|
||||
headers: { 'Content-Type': 'application/json' },
|
||||
body: JSON.stringify({
|
||||
enabled: document.getElementById('emailEnabled').checked,
|
||||
failover_enabled: document.getElementById('failoverEnabled').checked
|
||||
failover_enabled: document.getElementById('failoverEnabled').checked,
|
||||
register_verify_enabled: document.getElementById('registerVerifyEnabled').checked,
|
||||
base_url: document.getElementById('baseUrl').value.trim()
|
||||
})
|
||||
});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user