[Bug][Windows] 新 GitHub Token 有效但同步认证返回 401,登录与退出入口同时消失
Mantenedores costumam responder em até 1 dia
Avaliação
- Dificuldade
- 4/5
- Tempo estimado
- 3-5 dias
- Facilidade para iniciantes
- 25/100
- Tipo de issue
- Bug
- Clareza
- Claramente especificada
- Status de atividade
- Estagnada
- Stack de tecnologia
- github, rust, tauri, typescript
- Domínio
- authentication, backend-api-design, desktop
Direção de pesquisa
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.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
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,未配置自定义同步服务器。
- 完成 GitHub 登录,但未完成加密云同步后续设置/绑定。
- 隔天打开「设置 → 权限与数据 → 加密云同步」,尝试开启同步。
- 页面停在「第 1 步,共 3 步:开启同步」「此设备尚未解锁」「尚未检查云端备份」,红字提示「请重新登录 GitHub」。
- 点击刷新无效;重新启动应用后再次尝试仍复现。
- 页面既没有 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 条件冲突,尚未独立复现“隔天”必然触发凭据失效。
- Linguagem predominante
- Rust
- Estrelas
- 3.7k
- Forks
- 349
- Merge médio
- 2d 14h
- PRs com merge (30d)
- 97
Preparar o ambiente
Este projeto não oferece contêiner de desenvolvimento, Dockerfile nem guia de contribuição, então a configuração fica por sua conta: comece pelo README e veja nosso guia da primeira contribuição para os passos gerais.
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de Open-Less/openless
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 62/100
Mantenedores costumam responder em até 1 dia
-
[windows] 录音快捷键还不支持设置为ScrllLock键Talvez já em andamento @HKLHaoBin assumiu há 9 dias. Abertabug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
Open-Less/openless#1241 · 5 comentários ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 18/100
Mantenedores costumam responder em até 1 dia
-
[omni] 多模态模式开启翻译后,译文时有时无,或混在 JSON 字段里Talvez já em andamento @Breadswim assumiu há 2 dias. Aberta
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 52/100
Mantenedores costumam responder em até 1 dia
-
[omni] 多模态「验证」对 OpenAI gpt-audio-1.5 必然返回 400Talvez já em andamento @Breadswim assumiu há 2 dias. Aberta
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 58/100
Mantenedores costumam responder em até 1 dia
Todas as issues de Open-Less/openless
Issues semelhantes
-
example
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
rust-lang-nursery/rust-cookbook#954 ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 1/5 1-3 horas Facilidade para iniciantes 70/100
OpenZeppelin/openzeppelin-relayer#967 ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 62/100
Mantenedores costumam responder em até 1 dia
-
DecisionOutcome::label() / n_dosed(): engine-side mapping so downstream needs no wildcard armAberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
Mantenedores costumam responder em até 1 dia
-
src/runs.rs:1987: a missing --source-run-id now answers 400 "Source run ... does not exist", not 404Abertanightly-audit
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 62/100
antithesishq/snouty#602 ·
Mantenedores costumam responder em até 1 dia