From fb5be7052977ab1d85ed2c4fe684ff96387f01c7 Mon Sep 17 00:00:00 2001 From: katelya Date: Wed, 1 Oct 2025 23:39:02 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E6=B7=BB=E5=8A=A0=E7=BC=BA=E5=A4=B1?= =?UTF-8?q?=E7=9A=84PASSWORD=E7=8E=AF=E5=A2=83=E5=8F=98=E9=87=8F=E4=BB=A5?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D500=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在 wrangler.toml 中为生产和预览环境添加 PASSWORD 变量 - PASSWORD 是中间件验证的必需变量,缺失会导致500错误 - 更新部署指南,强调 PASSWORD 必须设置为 Plain text 类型 - 添加详细的环境变量类型设置说明和故障排除步骤 - PASSWORD 用于用户认证和签名验证,是系统核心安全机制 --- CLOUDFLARE_PAGES_DEPLOYMENT.md | 43 +++++++++++++++++++++++++++------- wrangler.toml | 2 ++ 2 files changed, 36 insertions(+), 9 deletions(-) diff --git a/CLOUDFLARE_PAGES_DEPLOYMENT.md b/CLOUDFLARE_PAGES_DEPLOYMENT.md index 948035f..0d6bbde 100644 --- a/CLOUDFLARE_PAGES_DEPLOYMENT.md +++ b/CLOUDFLARE_PAGES_DEPLOYMENT.md @@ -16,16 +16,26 @@ ### 🎯 解决步骤 -#### 第一步:设置 USERNAME 环境变量 +#### 第一步:设置必需的环境变量 在 Cloudflare Pages 控制台中: 1. 进入您的项目设置 2. 点击 "Settings" → "Environment variables" -3. 添加新的环境变量: +3. 添加以下**必需**环境变量: + + **USERNAME 变量:** - **Variable name**: `USERNAME` - **Value**: `katelya` (您的站长用户名) + - **Type**: Plain text - **Environment**: Production 和 Preview 都要添加 + + **PASSWORD 变量:** ⭐ **关键变量** + - **Variable name**: `PASSWORD` + - **Value**: `您设置的访问密码` + - **Type**: Plain text (**重要:不要选择密码类型**) + - **Environment**: Production 和 Preview 都要添加 + 4. 点击 "Save" 5. 重新部署项目 @@ -34,17 +44,23 @@ 确保以下环境变量已正确设置: ```bash -# 必需变量 -USERNAME=katelya -NEXT_PUBLIC_STORAGE_TYPE=d1 -NEXT_PUBLIC_SITE_NAME=KatelyaTV -NODE_ENV=production +# ⭐ 关键必需变量(缺一不可) +USERNAME=katelya # 站长用户名 +PASSWORD=your-secure-password # 访问密码 +NEXT_PUBLIC_STORAGE_TYPE=d1 # 存储类型 +NEXT_PUBLIC_SITE_NAME=KatelyaTV # 站点名称 +NODE_ENV=production # 运行环境 # 推荐设置 NEXTAUTH_URL=https://your-domain.pages.dev IMAGE_PROXY_ENABLED=true ``` +**⚠️ 重要提醒:** + +- `PASSWORD` 必须设置为 "Plain text" 类型,不要选择 "Secret" 或 "Password" 类型 +- `PASSWORD` 的值应该与您之前在本地或其他环境中使用的密码一致 + #### 第三步:检查 D1 数据库绑定 1. 确保在 Cloudflare Pages 中绑定了 D1 数据库 @@ -185,12 +201,19 @@ export const runtime = 'edge'; ```bash # 在 Cloudflare Pages 控制台检查这些变量 -USERNAME=katelya # ❌ 最常缺失 +USERNAME=katelya # ❌ 经常缺失 +PASSWORD=your-password # ❌ 最关键,经常缺失或类型错误 NEXT_PUBLIC_STORAGE_TYPE=d1 # ✅ 通常已设置 NEXT_PUBLIC_SITE_NAME=KatelyaTV # ✅ 通常已设置 NODE_ENV=production # ✅ 通常已设置 ``` +**特别注意 PASSWORD 变量:** + +- ✅ 正确:类型选择 "Plain text" +- ❌ 错误:类型选择 "Secret" 或 "Password" +- ❌ 错误:值为空或包含特殊字符 + #### 2. D1 数据库检查 - [ ] D1 数据库是否已创建 @@ -202,9 +225,11 @@ NODE_ENV=production # ✅ 通常已设置 | 错误现象 | 原因 | 解决方案 | |---------|------|----------| +| 500 错误 | PASSWORD 未设置或类型错误 | 设置 PASSWORD 为 Plain text 类型 | | 500 + 管理页面无法访问 | USERNAME 未设置 | 添加 USERNAME 环境变量 | +| 重定向到 /warning 页面 | PASSWORD 环境变量缺失 | 检查 PASSWORD 变量设置 | | 500 + 数据库相关错误 | D1 绑定问题 | 检查数据库绑定配置 | -| 构建成功但运行失败 | 环境变量缺失 | 检查所有必需变量 | +| 构建成功但运行失败 | 关键环境变量缺失 | 检查 USERNAME 和 PASSWORD | ### 验证部署成功 diff --git a/wrangler.toml b/wrangler.toml index 05f163d..16a2854 100644 --- a/wrangler.toml +++ b/wrangler.toml @@ -20,6 +20,7 @@ NEXT_PUBLIC_SITE_NAME = "KatelyaTV" NEXT_PUBLIC_SITE_DESCRIPTION = "高性能影视播放平台" NEXTAUTH_URL = "https://your-domain.pages.dev" USERNAME = "katelya" +PASSWORD = "your-secure-password-here" IMAGE_PROXY_ENABLED = "true" CACHE_TTL = "3600" CORS_ORIGIN = "*" @@ -47,5 +48,6 @@ NEXT_PUBLIC_STORAGE_TYPE = "d1" NEXT_PUBLIC_SITE_NAME = "KatelyaTV" NEXT_PUBLIC_SITE_DESCRIPTION = "高性能影视播放平台" USERNAME = "katelya" +PASSWORD = "your-secure-password-here" IMAGE_PROXY_ENABLED = "true" NODE_ENV = "production"