Files
AIGC/demo/EMAIL_LOGIN_CONFIGURATION_CHECKLIST.md

349 lines
10 KiB
Markdown
Raw Normal View History

# 邮件登录模块配置清单
## 一、已配置项 ✅
### 1. 开发环境配置application-dev.properties
-`tencent.ses.secret-id` - SecretID已配置
-`tencent.ses.secret-key` - SecretKey已配置
-`tencent.ses.region` - 服务区域ap-beijing
-`tencent.ses.from-email` - 发信地址newletter@vionow.com
-`tencent.ses.from-name` - 发件人名称AIGC平台
-`tencent.ses.template-id` - 模板ID154360生产模式
### 2. 代码实现
- ✅ 邮箱验证码登录接口(`/api/auth/login/email`
- ✅ 发送验证码接口(`/api/verification/email/send`
- ✅ 验证码服务VerificationCodeService
- ✅ 腾讯云SES邮件服务TencentSesMailService
- ✅ 前端登录页面Login.vue
- ✅ 用户名密码登录已禁用
---
## 二、需要检查/更新项 ⚠️
### 1. 腾讯云SES服务权限检查 ⚠️ **重要**
**当前配置的账号信息:**
- 主账号ID: `100040185043`
- 用户名: `test`
- SecretID: `AKIDXw8HBtNfjdJm480xljV4QZUDi05wa0DE`
- SecretKey: `tZyHMDsKadS4ScZhhU3PYUErGUVIqBIB`
**需要确认:**
- [ ] **SecretID/SecretKey 是否有效**
- 检查密钥是否过期或被撤销
- 访问https://console.cloud.tencent.com/cam/capi
- [ ] **是否有SES服务访问权限**
- 子账号需要有SES邮件推送服务的访问权限
- 如果没有权限,需要在主账号中授权
**检查步骤:**
1. 登录腾讯云控制台
2. 进入"访问管理" → "API密钥管理"
3. 检查密钥状态
4. 检查子账号权限策略
---
### 2. 发信地址验证 ⚠️ **重要(生产环境必需)**
**当前配置:**
- 发信地址: `newletter@vionow.com`
**需要操作:**
- [ ] **确认发信地址是否已验证**
- 访问https://console.cloud.tencent.com/ses/address
- 检查 `newletter@vionow.com` 的状态
- 如果状态为"未验证"或"验证失败"
**验证步骤:**
1. 进入SES控制台 → "发信地址"
2. 点击"创建发信地址"或编辑现有地址
3. 输入邮箱:`newletter@vionow.com`
4. 腾讯云会发送验证邮件到该邮箱
5. 点击邮件中的验证链接完成验证
6. 确认状态变为"已验证"
**注意:**
- ⚠️ 只有验证通过的邮箱才能发送邮件
- ⚠️ 开发模式template-id=0不需要验证也能测试但不会实际发邮件
- ⚠️ 生产模式必须有已验证的发信地址
---
### 3. 邮件模板配置 ✅ **已配置**
**当前状态:**
- `template-id=154360` - 生产模式(已配置)
**当前配置:**
- ✅ 模板ID已配置为 `154360`
- ✅ 系统将使用生产模式,实际发送邮件
**模板说明:**
- 模板ID: `154360`
- 模式: 生产模式(会实际发送邮件)
- 验证码变量: 模板中应包含 `{{code}}` 变量用于替换验证码
---
### 4. 生产环境配置 ⚠️ **缺失**
**当前状态:**
`application-prod.properties` 中**没有腾讯云SES配置**
**需要添加:**
- [ ] **在生产环境配置文件中添加SES配置**
**操作步骤:**
`demo/src/main/resources/application-prod.properties` 中添加:
```properties
# 腾讯云SES配置 (生产环境)
tencent.ses.secret-id=${TENCENT_SES_SECRET_ID}
tencent.ses.secret-key=${TENCENT_SES_SECRET_KEY}
tencent.ses.region=ap-beijing
tencent.ses.from-email=${TENCENT_SES_FROM_EMAIL}
tencent.ses.from-name=AIGC平台
tencent.ses.template-id=${TENCENT_SES_TEMPLATE_ID}
```
**环境变量设置:**
```bash
export TENCENT_SES_SECRET_ID=你的SecretID
export TENCENT_SES_SECRET_KEY=你的SecretKey
export TENCENT_SES_FROM_EMAIL=newletter@vionow.com
export TENCENT_SES_TEMPLATE_ID=你的模板ID
```
---
### 5. SES服务开通和额度 ⚠️ **重要**
**需要确认:**
- [ ] **SES服务是否已开通**
- 访问https://console.cloud.tencent.com/ses
- 检查服务状态
- [ ] **是否有可用额度**
- 检查账户余额或免费额度
- 确认是否有足够的邮件发送配额
- 查看计费信息
**检查步骤:**
1. 登录腾讯云控制台
2. 进入SES服务控制台
3. 查看"概览"页面的配额和用量信息
4. 确认是否有可用额度
---
### 6. 测试验证 ⚠️ **重要**
**开发模式测试:**
- [ ] **启动服务并测试**
```bash
cd demo
./mvnw spring-boot:run
```
- [ ] **测试发送验证码**
```bash
curl -X POST http://localhost:8080/api/verification/email/send \
-H "Content-Type: application/json" \
-d '{"email":"test@example.com"}'
```
- [ ] **检查邮箱**
- 应该收到实际邮件包含6位数字验证码
- 邮件来自newletter@vionow.com
- [ ] **测试登录**
- 访问登录页面
- 输入邮箱和验证码
- 验证登录功能
**生产模式测试(已完成配置):**
- [x]**Template-id已配置为154360**
- [ ] **重启服务**(如果服务正在运行)
- [ ] **发送测试邮件**
- [ ] **检查实际邮箱是否收到邮件**
---
## 三、配置优先级
### 🔴 紧急(必须配置)
1. **发信地址验证** - 生产环境必须验证才能发送邮件
2. **邮件模板创建** - 生产环境必须配置模板ID
3. **生产环境配置** - `application-prod.properties` 缺少SES配置
### 🟡 重要(建议配置)
4. **SES服务权限检查** - 确保账号有权限访问SES服务
5. **SES服务开通和额度** - 确保有可用配额
6. **测试验证** - 确保功能正常(会实际发送邮件)
7. **发信地址验证** - 确保 newletter@vionow.com 已验证
---
## 四、配置检查清单
### 开发环境配置状态
| 配置项 | 状态 | 说明 |
|--------|------|------|
| SecretID | ✅ 已配置 | 需确认有效性和权限 |
| SecretKey | ✅ 已配置 | 需确认有效性 |
| Region | ✅ 已配置 | ap-beijing |
| From-email | ✅ 已配置 | newletter@vionow.com需确认已验证 |
| From-name | ✅ 已配置 | AIGC平台 |
| Template-id | ✅ 已配置 | 154360生产模式 |
### 生产环境配置状态
| 配置项 | 状态 | 说明 |
|--------|------|------|
| SecretID | ❌ 未配置 | 需要添加环境变量 |
| SecretKey | ❌ 未配置 | 需要添加环境变量 |
| Region | ❌ 未配置 | 需要添加配置 |
| From-email | ❌ 未配置 | 需要添加环境变量 |
| From-name | ❌ 未配置 | 需要添加配置 |
| Template-id | ❌ 未配置 | 需要创建模板并配置ID |
---
## 五、快速检查命令
### 检查配置文件
```bash
# Windows PowerShell
Test-Path demo/src/main/resources/application-dev.properties
Test-Path demo/src/main/resources/application-prod.properties
# 检查SES配置项
Select-String -Path "demo/src/main/resources/application-dev.properties" -Pattern "tencent.ses"
```
### 测试邮件发送功能
```bash
# 开发模式测试(不会实际发送邮件)
curl -X POST http://localhost:8080/api/verification/email/send \
-H "Content-Type: application/json" \
-d '{"email":"test@example.com"}'
# 检查日志中的验证码
# 应该看到:开发模式:邮件验证码发送到: test@example.com, 验证码: XXXXXX
```
### 测试登录功能
```bash
# 使用开发接口设置验证码(开发模式)
curl -X POST http://localhost:8080/api/verification/email/dev-set \
-H "Content-Type: application/json" \
-d '{"email":"test@example.com","code":"123456"}'
# 测试登录
curl -X POST http://localhost:8080/api/auth/login/email \
-H "Content-Type: application/json" \
-d '{"email":"test@example.com","code":"123456"}'
```
---
## 六、常见问题
### Q1: 当前配置为生产模式
**A:** 当前模板ID已配置为154360生产模式系统会实际发送邮件。请确保
- 发信地址 `newletter@vionow.com` 已验证
- SES服务有可用额度
- 模板ID 154360 在腾讯云SES控制台已审核通过
### Q2: 发送失败 - 认证错误
```
InvalidSecretId.InvalidSignature
```
**解决:**
- 检查SecretID和SecretKey是否正确
- 确认密钥是否有SES服务权限
- 检查密钥是否过期
### Q3: 发送失败 - 发信地址未验证
```
InvalidParameter.EmailAddressNotVerified
```
**解决:**
- 在SES控制台验证发信地址
- 检查 `tencent.ses.from-email` 配置是否正确
- 注意开发模式template-id=0不需要验证也能测试
### Q4: 发送失败 - 模板不存在
```
ResourceNotFound.TemplateNotFound
```
**解决:**
- 确认模板ID是否正确
- 检查模板是否已审核通过
- 确认模板区域与配置的region一致
### Q5: 当前已是生产模式
**A:** 当前已配置为生产模式template-id=154360系统会实际发送邮件。如需切换回开发模式将template-id设置为0即可。
---
## 七、下一步操作建议
### 当前配置(生产模式)
1.**模板ID已配置为154360**(生产模式)
2. ⚠️ **验证发信地址**(重要)
- 确保 `newletter@vionow.com` 在SES控制台已验证
- 访问https://console.cloud.tencent.com/ses/address
3. ⚠️ **测试实际发送邮件**
- 重启服务(如果正在运行)
- 发送测试验证码
- 检查邮箱是否收到邮件
4. ⚠️ **更新生产环境配置**
-`application-prod.properties` 中已添加SES配置
- 设置环境变量 `TENCENT_SES_TEMPLATE_ID=154360`
---
## 八、相关文档链接
- **腾讯云SES控制台**: https://console.cloud.tencent.com/ses
- **发信地址管理**: https://console.cloud.tencent.com/ses/address
- **邮件模板管理**: https://console.cloud.tencent.com/ses/template
- **API密钥管理**: https://console.cloud.tencent.com/cam/capi
- **SES文档**: https://cloud.tencent.com/document/product/1288
- **邮箱验证登录指南**: `EMAIL_VERIFICATION_LOGIN_GUIDE.md`
- **SES启动检查清单**: `TENCENT_SES_STARTUP_CHECKLIST.md`
---
## 九、总结
### 当前状态
-**开发环境配置已完成**包括模板ID 154360
-**生产模式已启用**template-id=154360会实际发送邮件
- ⚠️ **需要确保发信地址已验证**
### 最小启动要求
1. ✅ SecretID和SecretKey已配置
2. ✅ From-email地址已配置newletter@vionow.com
3. ✅ Template-id=154360生产模式已配置
### 生产环境要求
1. ⚠️ 已验证的发信地址newletter@vionow.com
2. ✅ 已配置的邮件模板ID: 154360
3. ✅ 生产环境配置文件中的SES配置已添加
4. ⚠️ 有效的SecretID/SecretKey和SES服务权限需确认
**当前状态:** 已配置为生产模式,会实际发送邮件。请确保:
- 发信地址 `newletter@vionow.com` 已验证
- 模板ID 154360 已审核通过
- SES服务有可用额度