[Bug][Windows] 新 GitHub Token 有效但同步认证返回 401,登录与退出入口同时消失

Đang mở
#1,285 4 bình luận 0 reaction 0 người được giao Xem trên GitHub

Maintainer thường phản hồi trong vòng 1 ngày

@mvanhorn đang làm issue này rồi.

Từ ngày 28/10/2026.

  • #1286 của @mvanhorn — đang mở

Đánh giá

Độ khó
4/5
Thời gian dự kiến
3-5 ngày
Mức phù hợp với người mới
25/100
Loại issue
Lỗi
Độ rõ ràng
Đặc tả rõ ràng
Mức độ hoạt động
Đình trệ
Công nghệ
github, rust, tauri, typescript

Hướng nghiên cứu

Start with CloudSyncSection.tsx around the login and logout conditions, then trace how syncState=sign_in_required is produced in service.rs and how Marketplace::auth_status() determines local sign-in state. Review linked pull request #1286 and the issue’s latest investigation before changing behavior. Done means the reported state exposes a way to reauthenticate or sign out, and the listed auth and network failure cases are covered.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

2026-10-28 后续定位:新 OAuth Token 调用 GitHub /user 返回 200,但官方同步 /v1/auth/github 返回 401,直连与代理均复现。线上 /revision 为 40b519ae15ee5029578f377ff8baa8f25833e692,与同步服务连接文档 声明的“仅供指定账号联调”版本一致;该版本源码会把未进入 restricted 允许名单的有效账号也返回成同样的 401。高度怀疑账号开放范围与稳定版功能展示不一致,需维护者确认实际线上配置和拒绝分支。

详细脱敏接口结果和 requestId:排查记录。最新评论附线上提交对应源码、名单判断与建议。当前完整同步仍未修复;本地重新登录/凭据恢复不能解决服务访问资格问题。

环境与操作

Windows 桌面版 2.0.1+build.20261016,GitHub OAuth,未配置自定义同步服务器。

  1. 完成 GitHub 登录,但未完成加密云同步后续设置/绑定。
  2. 隔天打开「设置 → 权限与数据 → 加密云同步」,尝试开启同步。
  3. 页面停在「第 1 步,共 3 步:开启同步」「此设备尚未解锁」「尚未检查云端备份」,红字提示「请重新登录 GitHub」。
  4. 点击刷新无效;重新启动应用后再次尝试仍复现。
  5. 页面既没有 GitHub 登录按钮,也没有退出按钮,无法按提示重新登录。

“隔天/未完成设置”是用户操作背景,不能据此断定 Token 过期。

本机脱敏日志

[e2ee-token] prepare_enable: failed code=PermissionDenied message=sign_in_required

重启后再次操作仍记录相同错误。没有上传 Token、用户名、服务密钥或完整用户日志。

源码定位

CloudSyncSection.tsx,v2.0.1-tauri:

  • 登录按钮要求 !syncSignedIn && !authSignedIn(约 734 行)。
  • 退出按钮只在 syncSignedIn 为 true 时显示(约 744–762 行)。
  • 同步返回 sign_in_required 后,syncSignedIn=false;如果 Marketplace 因本地 Token 仍存在而保持 authSignedIn=true,两个入口会同时隐藏。刷新只是重新读取相同状态。

Marketplace::auth_status() 主要检查本地 Token 是否存在,不能证明同步认证有效。

另一个排查点:service.rs 将 sync_identity() 的错误统一映射成 sign_in_required,可能混淆网络失败与凭据失效;本次底层认证失败的具体原因尚未确认。

预期行为与回归建议

  • 同步要求重新认证时,不论本地是否残留 Token,都显示「重新登录 GitHub」。
  • 尚未完成首次同步配置时也能退出当前 GitHub 账号,不要求清空服务 Key、历史或云端备份。
  • 登录成功后清理旧错误并重新进入设置流程。
  • 覆盖 authSignedIn=true + syncState=sign_in_required、authState=expired、登录后未完成同步并重启,以及真正的网络失败。

目前已确认本机现象及 UI 条件冲突,尚未独立复现“隔天”必然触发凭据失效。

Ngôn ngữ chính
Rust
Star
3.7k
Fork
349
Merge trung bình
2 ngày 21 giờ
Pull request đã merge (30 ngày)
100

Chuẩn bị môi trường

Dự án này không cung cấp dev container, Dockerfile hay hướng dẫn đóng góp, nên bạn cần tự thiết lập môi trường: hãy bắt đầu từ README và xem hướng dẫn đóng góp lần đầu của chúng tôi để biết các bước chung.

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của Open-Less/openless

Tất cả issue của Open-Less/openless

Issue tương tự

Thêm issue về Rust

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.