|
|
@ -41,6 +41,16 @@ |
|
|
|
} |
|
|
|
``` |
|
|
|
|
|
|
|
### WebSocket配置 |
|
|
|
```json |
|
|
|
{ |
|
|
|
"WebSocket": { |
|
|
|
"Port": 5202, |
|
|
|
"Path": "/ws" |
|
|
|
} |
|
|
|
} |
|
|
|
``` |
|
|
|
|
|
|
|
### 认证配置 |
|
|
|
```json |
|
|
|
{ |
|
|
@ -55,16 +65,6 @@ |
|
|
|
} |
|
|
|
``` |
|
|
|
|
|
|
|
### WebSocket配置 |
|
|
|
```json |
|
|
|
{ |
|
|
|
"WebSocket": { |
|
|
|
"Port": 5202, |
|
|
|
"Path": "/ws" |
|
|
|
} |
|
|
|
} |
|
|
|
``` |
|
|
|
|
|
|
|
### 日志配置 |
|
|
|
```json |
|
|
|
{ |
|
|
@ -77,22 +77,56 @@ |
|
|
|
} |
|
|
|
``` |
|
|
|
|
|
|
|
### 其他配置 |
|
|
|
### 主机配置 |
|
|
|
```json |
|
|
|
{ |
|
|
|
"AllowedHosts": "*" |
|
|
|
} |
|
|
|
``` |
|
|
|
|
|
|
|
## 配置项说明 |
|
|
|
|
|
|
|
### DatabaseOptions |
|
|
|
- `DefaultConnection`: PostgreSQL数据库连接字符串 |
|
|
|
- `CommandTimeout`: 数据库命令超时时间(秒) |
|
|
|
- `EnableDetailedErrors`: 是否启用详细错误信息 |
|
|
|
- `EnableSensitiveDataLogging`: 是否启用敏感数据日志记录 |
|
|
|
|
|
|
|
### JwtOptions |
|
|
|
- `SecretKey`: JWT签名密钥 |
|
|
|
- `Issuer`: 令牌发行者 |
|
|
|
- `Audience`: 令牌接收者 |
|
|
|
- `ExpiryMinutes`: 令牌过期时间(分钟) |
|
|
|
- `RefreshTokenExpiryDays`: 刷新令牌过期时间(天) |
|
|
|
- `ClockSkewMinutes`: 时钟偏差允许时间(分钟) |
|
|
|
- `RequireHttpsMetadata`: 是否要求HTTPS元数据 |
|
|
|
- `SaveToken`: 是否保存令牌 |
|
|
|
- `ValidateIssuer`: 是否验证发行者 |
|
|
|
- `ValidateAudience`: 是否验证接收者 |
|
|
|
- `ValidateLifetime`: 是否验证生命周期 |
|
|
|
- `KeyRotationDays`: 密钥轮换周期(天) |
|
|
|
- `MinKeyLength`: 最小密钥长度 |
|
|
|
|
|
|
|
### WebSocket |
|
|
|
- `Port`: WebSocket服务端口 |
|
|
|
- `Path`: WebSocket连接路径 |
|
|
|
|
|
|
|
### Auth |
|
|
|
- `MaxLoginAttempts`: 最大登录尝试次数 |
|
|
|
- `LoginAttemptsWindowMinutes`: 登录尝试窗口时间(分钟) |
|
|
|
- `LoginAttemptsCacheKeyFormat`: 登录尝试缓存键格式 |
|
|
|
- `DefaultUserRole`: 默认用户角色 |
|
|
|
- `AccessTokenExpirationMinutes`: 访问令牌过期时间(分钟) |
|
|
|
- `RefreshTokenExpirationDays`: 刷新令牌过期时间(天) |
|
|
|
|
|
|
|
## 环境变量配置 |
|
|
|
以下环境变量可以在不同环境中覆盖配置文件中的设置: |
|
|
|
|
|
|
|
- `ASPNETCORE_ENVIRONMENT` - 设置运行环境(Development/Production) |
|
|
|
- `DatabaseOptions__DefaultConnection` - 数据库连接字符串 |
|
|
|
- `JwtOptions__SecretKey` - JWT密钥 |
|
|
|
- `JwtOptions__ExpiryMinutes` - JWT过期时间(分钟) |
|
|
|
- `WebSocket__Port` - WebSocket端口 |
|
|
|
- `Auth__MaxLoginAttempts` - 最大登录尝试次数 |
|
|
|
- `WebSocket__Port` - WebSocket端口号 |
|
|
|
|
|
|
|
## 配置优先级 |
|
|
|
1. 环境变量 |
|
|
@ -104,6 +138,5 @@ |
|
|
|
1. 生产环境中不要将敏感信息(如密钥、连接字符串)直接写入配置文件 |
|
|
|
2. 使用环境变量或安全的密钥管理服务来存储敏感信息 |
|
|
|
3. 确保配置文件不会被提交到版本控制系统 |
|
|
|
4. 在开发环境中启用 `EnableDetailedErrors` 和 `EnableSensitiveDataLogging`,但在生产环境中应禁用 |
|
|
|
5. 确保 JWT 密钥长度至少为 64 个字符 |
|
|
|
6. 定期轮换 JWT 密钥(建议每 30 天) |
|
|
|
4. 定期轮换JWT密钥 |
|
|
|
5. 根据环境调整日志级别和敏感数据记录 |