初次提交
This commit is contained in:
118
backend/fix_cors.sh
Normal file
118
backend/fix_cors.sh
Normal file
@@ -0,0 +1,118 @@
|
||||
#!/bin/bash
|
||||
|
||||
# CORS跨域问题快速修复脚本
|
||||
|
||||
echo "=== CORS跨域问题修复工具 ==="
|
||||
|
||||
# 检查当前目录
|
||||
if [ ! -f "main.py" ]; then
|
||||
echo "错误: 请在包含main.py的项目根目录下运行此脚本"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "当前目录: $(pwd)"
|
||||
|
||||
# 1. 更新配置文件
|
||||
echo ""
|
||||
echo "1. 更新CORS配置..."
|
||||
|
||||
# 更新config.py
|
||||
echo "更新 app/core/config.py..."
|
||||
sed -i 's/ALLOWED_HOSTS: List\[str\] = \[.*\]/ALLOWED_HOSTS: List[str] = ["*"] # 允许所有域名访问/' app/core/config.py
|
||||
|
||||
if [ $? -eq 0 ]; then
|
||||
echo "✓ config.py 更新成功"
|
||||
else
|
||||
echo "✗ config.py 更新失败,请手动检查"
|
||||
fi
|
||||
|
||||
# 2. 更新.env文件
|
||||
echo ""
|
||||
echo "2. 更新环境配置..."
|
||||
if [ -f ".env" ]; then
|
||||
# 备份原始文件
|
||||
cp .env .env.backup.$(date +%Y%m%d_%H%M%S)
|
||||
|
||||
# 更新CORS配置
|
||||
sed -i 's/ALLOWED_HOSTS=\[.*\]/ALLOWED_HOSTS=["*"]/' .env
|
||||
|
||||
if grep -q 'ALLOWED_HOSTS=\["\*"\]' .env; then
|
||||
echo "✓ .env 文件更新成功"
|
||||
else
|
||||
echo "✗ .env 文件更新失败,请手动检查"
|
||||
fi
|
||||
else
|
||||
echo ".env 文件不存在,创建新的配置..."
|
||||
cat > .env << EOF
|
||||
# 基础配置
|
||||
ENVIRONMENT=production
|
||||
DEBUG=false
|
||||
|
||||
# 数据库配置
|
||||
DATABASE_URL=mysql+pymysql://用户名:密码@localhost:3306/数据库名
|
||||
|
||||
# Redis配置
|
||||
REDIS_URL=redis://localhost:6379
|
||||
|
||||
# JWT配置
|
||||
JWT_SECRET_KEY=your-super-secret-jwt-key-change-in-production-$(date +%s)
|
||||
JWT_ALGORITHM=HS256
|
||||
JWT_EXPIRE_MINUTES=30
|
||||
|
||||
# 文件上传配置
|
||||
UPLOAD_DIR=uploads
|
||||
MAX_FILE_SIZE=10485760
|
||||
|
||||
# CORS配置
|
||||
ALLOWED_HOSTS=["*"]
|
||||
EOF
|
||||
echo "✓ .env 文件创建成功"
|
||||
fi
|
||||
|
||||
# 3. 验证配置
|
||||
echo ""
|
||||
echo "3. 验证CORS配置..."
|
||||
|
||||
# 检查config.py
|
||||
if grep -q 'ALLOWED_HOSTS: List\[str\] = \["\*"\]' app/core/config.py; then
|
||||
echo "✓ config.py CORS配置正确"
|
||||
else
|
||||
echo "✗ config.py CORS配置可能有问题"
|
||||
fi
|
||||
|
||||
# 检查.env文件
|
||||
if grep -q 'ALLOWED_HOSTS=\["\*"\]' .env; then
|
||||
echo "✓ .env CORS配置正确"
|
||||
else
|
||||
echo "✗ .env CORS配置可能有问题"
|
||||
fi
|
||||
|
||||
# 4. 重启服务提示
|
||||
echo ""
|
||||
echo "4. 重启服务..."
|
||||
echo "配置更新完成,请重启应用以使配置生效"
|
||||
echo ""
|
||||
echo "重启方式:"
|
||||
echo "1. 如果应用正在运行,请按 Ctrl+C 停止"
|
||||
echo "2. 然后重新启动: python main.py"
|
||||
echo "3. 或者使用启动脚本: ./start_app.sh"
|
||||
echo ""
|
||||
echo "如果使用Docker部署:"
|
||||
echo "1. 重新构建镜像: docker build -t cloud-drive-backend:latest ."
|
||||
echo "2. 重新运行容器: docker run -d -p 8002:8002 cloud-drive-backend:latest"
|
||||
|
||||
# 5. 测试CORS
|
||||
echo ""
|
||||
echo "5. CORS测试建议..."
|
||||
echo "重启后,可以通过以下方式测试CORS:"
|
||||
echo "1. 浏览器开发者工具 -> Network -> 查看请求头"
|
||||
echo "2. 检查是否有 'Access-Control-Allow-Origin: *' 头"
|
||||
echo "3. 使用curl测试: curl -H 'Origin: http://example.com' -H 'Access-Control-Request-Method: POST' -H 'Access-Control-Request-Headers: X-Requested-With' -X OPTIONS http://localhost:8002/api/v1/health"
|
||||
|
||||
echo ""
|
||||
echo "=== CORS修复完成 ==="
|
||||
echo ""
|
||||
echo "注意事项:"
|
||||
echo "- 允许所有域名访问 (\"*\") 仅适用于开发和测试环境"
|
||||
echo "- 生产环境建议设置具体的允许域名列表"
|
||||
echo "- 如需更安全的CORS配置,请手动修改 ALLOWED_HOSTS"
|
||||
Reference in New Issue
Block a user