123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129 |
- """
- CORS配置模板文件
- 提供多种配置方案供用户选择
- """
- # ============================================================================
- # 配置方案选择
- # ============================================================================
- # 选择配置方案(取消注释你想要的方案)
- CORS_SCHEME = "ALLOW_ALL" # 最灵活,允许任意前端访问
- # CORS_SCHEME = "IP_RANGE" # 允许特定IP网段
- # CORS_SCHEME = "FIXED_LIST" # 只允许固定的前端地址
- # ============================================================================
- # 方案1: 允许所有源(最灵活,开发环境推荐)
- # ============================================================================
- if CORS_SCHEME == "ALLOW_ALL":
- ALLOWED_ORIGINS = "*"
- SUPPORTS_CREDENTIALS = False # 通配符时不支持凭据
- SEND_WILDCARD = True
- # ============================================================================
- # 方案2: 允许特定IP网段(生产环境推荐)
- # ============================================================================
- elif CORS_SCHEME == "IP_RANGE":
- # 允许的IP网段
- ALLOWED_IP_RANGES = [
- "192.168.0.0/16", # 局域网IP段
- "10.0.0.0/8", # 内网IP段
- "172.16.0.0/12", # 内网IP段
- "127.0.0.0/8", # 本地回环
- ]
-
- # 允许的端口范围
- ALLOWED_PORTS = [
- 3000, 5173, 8080, # 常见开发端口
- 3001, 5174, 8081, # 备用端口
- 4000, 5000, 6000, # 其他端口
- ]
-
- ALLOWED_ORIGINS = "*" # 动态验证IP
- SUPPORTS_CREDENTIALS = True
- SEND_WILDCARD = False
- # ============================================================================
- # 方案3: 固定地址列表(最安全,但不够灵活)
- # ============================================================================
- elif CORS_SCHEME == "FIXED_LIST":
- ALLOWED_ORIGINS = [
- "http://localhost:5173", # Vite默认端口
- "http://localhost:3000", # React默认端口
- "http://localhost:8080", # Vue默认端口
- "http://127.0.0.1:5173",
- "http://127.0.0.1:3000",
- "http://127.0.0.1:8080",
- # 添加你的前端地址
- # "http://your-frontend-ip:port",
- ]
- SUPPORTS_CREDENTIALS = True
- SEND_WILDCARD = False
- # ============================================================================
- # 通用配置
- # ============================================================================
- # 允许的HTTP方法
- ALLOWED_METHODS = [
- "GET", "POST", "PUT", "DELETE", "OPTIONS"
- ]
- # 允许的请求头
- ALLOWED_HEADERS = [
- "Content-Type",
- "Authorization",
- "X-Requested-With",
- "Accept",
- "Origin",
- "Cache-Control",
- "X-File-Name"
- ]
- # 暴露的响应头
- EXPOSED_HEADERS = [
- "Content-Type",
- "Content-Length",
- "Content-Disposition",
- "X-Total-Count"
- ]
- # CORS配置选项
- CORS_OPTIONS = {
- "resources": {r"/api/*": {"origins": ALLOWED_ORIGINS}},
- "supports_credentials": SUPPORTS_CREDENTIALS,
- "methods": ALLOWED_METHODS,
- "allow_headers": ALLOWED_HEADERS,
- "expose_headers": EXPOSED_HEADERS,
- "max_age": 86400, # 预检请求缓存时间(秒)
- "send_wildcard": SEND_WILDCARD,
- "automatic_options": True
- }
- # ============================================================================
- # 配置说明
- # ============================================================================
- """
- 配置方案说明:
- 1. ALLOW_ALL (推荐用于开发环境)
- - 优点:最灵活,支持任意前端地址
- - 缺点:安全性较低,不支持凭据
- - 适用:开发、测试环境
- 2. IP_RANGE (推荐用于生产环境)
- - 优点:安全性适中,支持凭据
- - 缺点:需要配置IP网段
- - 适用:内网生产环境
- 3. FIXED_LIST (最安全)
- - 优点:最安全,完全控制访问源
- - 缺点:不够灵活,需要手动维护
- - 适用:严格安全要求的环境
- 使用方法:
- 1. 选择你想要的配置方案
- 2. 取消注释对应的 CORS_SCHEME
- 3. 根据需要调整具体配置
- 4. 重启Flask应用使配置生效
- """
|