Files
AIGC/demo/TENCENT_CLOUD_SETUP.md
AIGC Developer 68574fe33f 实现邮箱验证码登录功能
- 新增VerificationCodeService:验证码生成、发送、验证
- 新增VerificationCodeController:验证码相关API接口
- 扩展AuthApiController:支持邮箱验证码登录
- 扩展UserRepository和UserService:支持邮箱查找用户
- 使用内存存储验证码,无需Redis依赖
- 添加腾讯云配置支持(可选)
- 实现安全机制:频率限制、有效期、一次性使用
- 添加详细文档说明
2025-10-23 10:27:36 +08:00

120 lines
2.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 腾讯云邮箱验证码登录配置指南
## 1. 腾讯云服务开通
### 1.1 开通邮件推送服务SES
1. 登录腾讯云控制台
2. 进入"邮件推送"服务
3. 开通邮件推送服务
4. 配置发件人邮箱
5. 申请邮件模板
### 1.2 获取API密钥
1. 进入"访问管理" -> "API密钥管理"
2. 创建密钥获取SecretId和SecretKey
## 2. 配置参数
### 2.1 修改配置文件
编辑 `src/main/resources/application-tencent.properties`
```properties
# 腾讯云配置
tencent.cloud.secret-id=你的SecretId
tencent.cloud.secret-key=你的SecretKey
# 邮件推送服务配置
tencent.cloud.ses.region=ap-beijing
tencent.cloud.ses.from-email=你的发件人邮箱
tencent.cloud.ses.from-name=你的应用名称
tencent.cloud.ses.template-id=你的邮件模板ID
```
### 2.2 邮件模板示例
```html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>验证码</title>
</head>
<body>
<h2>验证码</h2>
<p>您的验证码是:<strong>{{code}}</strong></p>
<p>请在5分钟内输入如非本人操作请忽略此邮件。</p>
</body>
</html>
```
## 3. Redis配置
### 3.1 安装Redis
- Windows: 下载Redis for Windows
- Linux: `sudo apt-get install redis-server`
- macOS: `brew install redis`
### 3.2 启动Redis
```bash
redis-server
```
### 3.3 配置Redis连接
修改 `application-tencent.properties` 中的Redis配置
```properties
spring.data.redis.host=localhost
spring.data.redis.port=6379
spring.data.redis.password=
spring.data.redis.database=0
```
## 4. 测试验证码功能
### 4.1 发送邮件验证码
```bash
curl -X POST http://localhost:8080/api/verification/email/send \
-H "Content-Type: application/json" \
-d '{"email": "test@example.com"}'
```
### 4.2 验证码登录
```bash
# 邮箱验证码登录
curl -X POST http://localhost:8080/api/auth/login/email \
-H "Content-Type: application/json" \
-d '{"email": "test@example.com", "code": "123456"}'
```
## 5. 安全注意事项
1. **API密钥安全**不要将SecretId和SecretKey提交到代码仓库
2. **验证码有效期**验证码5分钟过期
3. **发送频率限制**同一邮箱60秒内只能发送一次
4. **验证码长度**6位数字验证码
5. **Redis安全**生产环境建议设置Redis密码
## 6. 故障排除
### 6.1 常见错误
- `TencentCloudSDKException`: 检查API密钥和配置
- `Redis连接失败`: 检查Redis服务是否启动
- `验证码发送失败`: 检查腾讯云服务配置
### 6.2 日志查看
查看应用日志中的验证码相关日志:
```bash
tail -f logs/application.log | grep "验证码"
```
## 7. 生产环境部署
### 7.1 环境变量配置
```bash
export TENCENT_SECRET_ID=你的SecretId
export TENCENT_SECRET_KEY=你的SecretKey
export REDIS_HOST=你的Redis主机
export REDIS_PORT=你的Redis端口
```
### 7.2 配置文件
使用环境变量覆盖配置文件中的敏感信息。