Skip to content

twikoo-cloudflare v1.6.44 与客户端 v1.7.x 兼容性问题汇总 #20

@bufansong2019

Description

@bufansong2019

环境

  • 服务端:twikoo-cloudflare (基于 twikoo-func v1.6.44)
  • 客户端:twikoo v1.7.x (CDN 加载)
  • 部署方式:Cloudflare Workers + D1 + R2

Bug 1:登录 / 权限验证双重哈希(严重)

客户端 v1.7.x 在 LOGIN 时发送的是 md5(password) 而非明文密码, 服务端 login() 又执行了一次
md5(),导致两次哈希后无法匹配数据库中存储的 ADMIN_PASS。同理 isAdmin() 和 SET_PASSWORD 也有相同问题。

涉及函数:src/index.js 中的 login()、isAdmin()、setPassword()

Bug 2:R2 图床上传被前端拦截(严重)

GET_CONFIG 返回的配置中 IMAGE_CDN 为空(因为用的是 R2
而非第三方图床),前端检查到此字段未配置,直接弹"博主未配置图床服务",连 upload 请求都不发出。即使服务端已正确配置 R2
绑定也无效。

涉及代码:src/index.js 中 GET_CONFIG / GET_CONFIG_FOR_ADMIN case

Bug 3:dataURIToBlob() 正则缺陷(中等)

header.match(/:(.*?);/)

假设所有 data URI 都带 ;base64,但 data:image/jpeg,xxxx 这种不含分号的合法格式会导致 match() 返回 null,随后访问 [1]
抛出 TypeError。建议改为匹配分号或结尾:

header.match(/:(.*?)(?:;|$)/)

Bug 4:LIGHTBOX 灯箱放大了头像(轻微)

LIGHTBOX 功能开启后,评论区头像 也被灯箱选择器捕获,点击头像会弹出放大效果——头像并非评论插图,不应纳入灯箱范围。
建议限缩选择器,仅匹配评论内容区的图片。

Bug 5:已登录状态下刷新页面进入管理面板,登录框会闪现

浏览器刷新后,客户端异步调用 GET_CONFIG 验证管理权限,但 UI 默认先渲染了登录弹窗,等 API 返回 IS_ADMIN: true
后才切换到后台面板,造成短暂的"闪现"。建议在权限验证完成前显示 loading 状态,而非直接展示登录框。


建议

以上 bug 1-3 已在 src/index.js 中临时修复,希望上游在后续版本中一并处理,让 cloudflare worker
版本保持与最新客户端的兼容。Bug 4 及Bug 5 属于客户端前端问题,需要修改 twikoo 客户端 JS。

以上都是部署中目前发现的一些问题,没办法后端只能让DS老师改改接着用了,前端只能靠作者大大了,顺带给作者大大提个议题!很好用的插件呀,希望cloudflare版的也能尽快更新至最新版!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions