refactor: 重构文档结构和文件位置
docs: 添加Redis集成测试文档 docs: 添加ID生成器分析报告 docs: 添加自由布局和固定布局示例文档 test: 添加ID生成器单元测试 fix: 删除重复的前端文档文件
This commit is contained in:
78
docs/REDIS_INTEGRATION.md
Normal file
78
docs/REDIS_INTEGRATION.md
Normal file
@ -0,0 +1,78 @@
|
||||
# Redis集成测试
|
||||
|
||||
这个文件包含了Redis集成的测试说明。
|
||||
|
||||
## 环境配置
|
||||
|
||||
1. 复制环境配置文件:
|
||||
```bash
|
||||
cp .env.example .env
|
||||
```
|
||||
|
||||
2. 根据需要修改 `.env` 文件中的Redis配置:
|
||||
```bash
|
||||
REDIS_URL=redis://:123456@127.0.0.1:6379/9
|
||||
```
|
||||
|
||||
## 启动Redis服务
|
||||
|
||||
确保Redis服务器正在运行:
|
||||
```bash
|
||||
# 使用Docker运行Redis
|
||||
docker run -d -p 6379:6379 --name redis-udmin redis:7-alpine --requirepass 123456
|
||||
|
||||
# 或者使用本地Redis服务
|
||||
redis-server --requirepass 123456
|
||||
```
|
||||
|
||||
## 测试Redis连接
|
||||
|
||||
启动服务器:
|
||||
```bash
|
||||
cargo run
|
||||
```
|
||||
|
||||
查看日志中是否有Redis连接成功的信息:
|
||||
```
|
||||
[INFO] Connecting to Redis at: redis://:***@127.0.0.1:6379/9
|
||||
[INFO] Redis connection established successfully
|
||||
```
|
||||
|
||||
## 测试Token存储
|
||||
|
||||
1. 登录获取token:
|
||||
```bash
|
||||
curl -X POST http://localhost:8080/api/auth/login \
|
||||
-H "Content-Type: application/json" \
|
||||
-d '{"username":"admin","password":"Admin@123"}'
|
||||
```
|
||||
|
||||
2. 检查Redis中的token:
|
||||
```bash
|
||||
# 连接到Redis CLI
|
||||
redis-cli -a 123456 -n 9
|
||||
|
||||
# 查看所有token键
|
||||
KEYS token:*
|
||||
|
||||
# 查看特定用户的token
|
||||
GET token:access:user:1
|
||||
GET token:refresh:user:1
|
||||
```
|
||||
|
||||
## 功能验证
|
||||
|
||||
Redis集成后的新功能:
|
||||
|
||||
1. **Token存储**:所有JWT token都存储在Redis中
|
||||
2. **Token验证**:每次API调用都会验证Redis中的token
|
||||
3. **Token撤销**:logout时会从Redis中删除token
|
||||
4. **性能提升**:减少数据库查询,提升认证性能
|
||||
5. **单点登录**:防止多重登录(可配置)
|
||||
|
||||
## 环境变量说明
|
||||
|
||||
- `REDIS_URL`: Redis连接字符串
|
||||
- `REDIS_TOKEN_VALIDATION`: 是否启用Redis token验证(默认true)
|
||||
- `JWT_ACCESS_EXP_SECS`: 访问token过期时间(秒)
|
||||
- `JWT_REFRESH_EXP_SECS`: 刷新token过期时间(秒)
|
||||
Reference in New Issue
Block a user