Skip to content

修复登录流程,增强 Worker 安全性并完善文档#32

Open
VictorQR wants to merge 11 commits intotjsky:mainfrom
VictorQR:main
Open

修复登录流程,增强 Worker 安全性并完善文档#32
VictorQR wants to merge 11 commits intotjsky:mainfrom
VictorQR:main

Conversation

@VictorQR
Copy link

@VictorQR VictorQR commented Oct 1, 2025

本次更新主要包含三个方面:修复了邮箱登录时的人机验证问题,增强了 Cloudflare Worker 代理的安全性和灵活性,并完全重写了项目文档,为新用户提供了全面的部署指南。

🐛 Bug 修复 (Bug Fixes)

  • 修复邮箱登录验证问题: 解决了在特定情况下,邮箱登录 (login.vue) 因缺少人机验证(Captcha)流程而失败的问题。通过引入 initCaptcha 逻辑,确保了登录流程的稳定性。

🚀 功能增强 (Feature Enhancements)

  • Worker 脚本支持通配符: 重构了 Cloudflare Worker 脚本 (cf-worker/index.js),增加了对域名白名单的通配符支持(例如 *.mypikpak.com)。这使得代理规则配置更加灵活和便捷,无需再手动添加大量子域名。

📝 文档完善 (Documentation Improvements)

  • 重写 README.md: 更新了项目文档。
  • 新增内容: 新的 README 包括了详细的功能特性列表、分步式的部署教学(含如何配置 Worker),以及指向 Worker 脚本文件的明确指引。

本次提交对 cf-worker/index.js 进行了多项改进,旨在提高其安全性、性能和代码质量。

安全增强:

引入 ALLOWED_DOMAINS 白名单机制,以精确控制允许通过代理访问的域名,有效防止代理被恶意利用。

性能优化:

将 blocker 中的域名和扩展名列表从数组改为 Set,利用其 O(1) 的时间复杂度进行查找,提升了过滤性能。

代码重构与健壮性:

使用标准的 URL 对象来解析和处理传入的 URL,替代了原有的字符串操作,使逻辑更清晰且不易出错。

优化了对请求头(Headers)的处理逻辑。

完善了错误处理机制,能更好地捕获和响应异常。

为 OPTIONS 预检请求提供了标准的响应处理。
本次提交包含两项主要更新:增强 Cloudflare Worker 的功能性,并提供一份全面的项目说明文档。

-   **Cloudflare Worker (`cf-worker/index.js`):**
    -   重构了域名验证逻辑,**增加了对通配符规则的支持** (例如 `*.mypikpak.com`)。
    -   这使得白名单配置更灵活、易于维护,能够轻松覆盖 PikPak 大量的下载和视频子域名,避免了频繁手动添加的麻烦。
    -   已在脚本中预置 PikPak Web 应用正常运行所需的域名规则。

-   **文档 (`README.md`):**
    -   **全面重写了 `README.md` 文件**,使其成为一份自包含的完整指南。
    -   新增了详细的“功能特性”部分,让用户可以快速了解项目能力。
    -   提供了从零开始的“部署指南”,包括如何打包项目、如何创建并配置 Cloudflare Worker 反向代理的详细步骤。
```
fix(login): 修复邮箱登录时缺少人机验证的问题

修复了在特定情况下(如API认为登录行为异常时)邮箱登录会失败并提示“Please add captcha before you register”的错误。

- **问题原因:**
  原有的 `src/views/login.vue` 组件在发起登录请求时,未处理人机验证(Captcha)流程,直接提交了空的 `captcha_token`。

- **解决方案:**
  从 `sms.vue`(手机登录)组件中移植了 `initCaptcha` 的逻辑到 `login.vue` 中。现在,在点击登录按钮后,会先向 PikPak 的 `captcha/init` 接口请求一个有效的 `captcha_token`,然后再携带此 `token` 进行登录,从而解决了因缺少验证而被服务器拒绝的问题。
```
修复了在特定情况下(如API认为登录行为异常时)邮箱登录会失败并提示“Please add captcha before you register”的错误。

- **问题原因:**
  原有的 `src/views/login.vue` 组件在发起登录请求时,未处理人机验证(Captcha)流程,直接提交了空的 `captcha_token`。

- **解决方案:**
  从 `sms.vue`(手机登录)组件中移植了 `initCaptcha` 的逻辑到 `login.vue` 中。现在,在点击登录按钮后,会先向 PikPak 的 `captcha/init` 接口请求一个有效的 `captcha_token`,然后再携带此 `token` 进行登录,从而解决了因缺少验证而被服务器拒绝的问题。
修复了在特定情况下(如API认为登录行为异常时)邮箱登录会失败并提示“Please add captcha before you register”的错误。

- **问题原因:**
  原有的 `src/views/login.vue` 组件在发起登录请求时,未处理人机验证(Captcha)流程,直接提交了空的 `captcha_token`。

- **解决方案:**
  从 `sms.vue`(手机登录)组件中移植了 `initCaptcha` 的逻辑到 `login.vue` 中。现在,在点击登录按钮后,会先向 PikPak 的 `captcha/init` 接口请求一个有效的 `captcha_token`,然后再携带此 `token` 进行登录,从而解决了因缺少验证而被服务器拒绝的问题。
@Edward-Chen0931
Copy link

captcha问题好像又回来了

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants