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

Ouverte
#1,285 4 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Les mainteneurs répondent en général sous 1 jour

@mvanhorn y travaille déjà.

Depuis le 28/10/2026.

  • #1286 par @mvanhorn — ouverte

Évaluation

Difficulté
4/5
Temps estimé
3-5 jours
Accessibilité débutants
25/100
Type d'issue
Bug
Clarté
Clairement spécifiée
Activité
À l'abandon
Stack technique
github, rust, tauri, typescript

Piste de recherche

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.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

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 条件冲突,尚未独立复现“隔天”必然触发凭据失效。

Langage dominant
Rust
Étoiles
3.7k
Forks
349
Merge moyen
2 j 14 h
PR mergées (30 j)
97

Préparer son environnement

Ce projet ne fournit ni conteneur de développement, ni Dockerfile, ni guide de contribution : l'installation est à votre charge. Commencez par son README, et consultez notre guide de la première contribution pour les étapes générales.

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de Open-Less/openless

Toutes les issues de Open-Less/openless

Issues similaires

Plus d'issues Rust

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.