Skip to content

UserService增加auth的两种方式以及绑定X账号相关接口#13

Merged
jingleizhang merged 11 commits intodevfrom
feat_x
Apr 24, 2026
Merged

UserService增加auth的两种方式以及绑定X账号相关接口#13
jingleizhang merged 11 commits intodevfrom
feat_x

Conversation

@Meow711
Copy link
Copy Markdown
Contributor

@Meow711 Meow711 commented Apr 23, 2026

No description provided.

@Meow711 Meow711 changed the title UserService增加oauth和connectors接口 UserService增加auth的两种方式以及绑定X账号相关接口 Apr 24, 2026
@Meow711 Meow711 marked this pull request as ready for review April 24, 2026 08:55
@Meow711 Meow711 marked this pull request as draft April 24, 2026 09:08
@Meow711 Meow711 marked this pull request as ready for review April 24, 2026 09:21
@github-actions
Copy link
Copy Markdown

github-actions Bot commented Apr 24, 2026

优点

问题

严重(必须修复)

  • 本轮静态审查未发现可直接判定为“必然导致核心功能异常/数据风险”的确定性严重问题。

重要(建议修复)

  1. X 平台字段语义在同一 PR 内不一致,存在响应解析失败风险
  • 文件:wyseos/mate/services/user.py:115, wyseos/mate/models.py:325
  • 问题是什么:请求参数里使用 platform="twitter",但返回模型将 platform 限定为 Literal["x"]
  • 为什么重要:若后端返回 "twitter"(与请求一致),ListXAccountsResponse 会触发 Pydantic 校验错误,SDK 调用直接失败。
  • 如何修复:统一协议枚举并在请求/响应两端保持一致;若后端可能返回两种值,模型可先放宽为 Literal["x", "twitter"]str 并在文档中明确。
  1. 授权接口“connector/credential”命名不一致,存在协议错配风险
  • 文件:wyseos/mate/services/user.py:141, wyseos/mate/models.py:343, examples/quickstart.md:81
  • 问题是什么:对外方法参数叫 target_connector_id,实际请求体字段是 target_credential_id,文档也描述为 connector 语义。
  • 为什么重要:字段语义不统一容易导致后端字段对不上,出现“调用成功但未按预期换绑/绑定”的隐性功能缺陷。
  • 如何修复:与后端协议确认后统一命名;若后端仍要求 target_credential_id,建议在文档和方法注释里明确“connector_id 映射到 target_credential_id”的原因,避免误用。
  1. 新增核心能力缺少自动化测试与 CI 兜底
  • 文件:wyseos/mate/services/user.py, wyseos/mate/client.py:60, .github/workflows/codex-review.yml
  • 问题是什么:PR 引入了新服务接口与 skip_auth 行为变更,但未见对应测试;现有 CI 也未执行单测/集成测试。
  • 为什么重要:认证头是否被正确跳过、响应模型是否兼容、字段命名是否匹配都属于高回归风险点,仅靠示例和静态检查不够。
  • 如何修复:至少补充 UserService/Client 的单元测试(mock HTTP)覆盖 skip_authget_x_oauth_urlauthorize_x_accountlist_x_accounts 的关键路径与异常路径;在 CI 中加入测试步骤。

次要(可优化)

  1. 示例中的异常捕获过宽,降低问题定位效率
  • 文件:examples/auth/connectors_example.py:27
  • 问题是什么:create_client() 直接 except Exception
  • 为什么重要:会吞掉编程错误与配置错误的边界,用户难区分“配置缺失”与“代码异常”。
  • 如何修复:仅捕获 ConfigError(或已知异常类型),其他异常保留 traceback。
  1. OAuth 重定向 URL 完全硬编码,可扩展性有限
  • 文件:wyseos/mate/services/user.py:117, wyseos/mate/services/user.py:156
  • 问题是什么:两个 OAuth 流程都固定拼接 SDK 内置路径,调用方无法自定义回调地址。
  • 为什么重要:在多环境/多前端部署场景下,SDK 复用性受限。
  • 如何修复:为 get_x_oauth_url / authorize_x_account 增加可选 redirect_url 参数(默认保留当前行为)。

建议

  • 先做协议字段统一(platformtarget_connector_id/target_credential_id),再补最小测试集,这两项能显著降低上线后接口不可用风险。
  • 在文档里补充“登录 OAuth”和“连接器绑定 OAuth”的参数与回调差异表,减少接入歧义。
  • 明确标注本次仅为静态审查结论;运行验证未执行。

结论

可以合并吗? 修复后可合并

理由: 本次改动方向正确、文档和示例同步较好,但存在协议字段一致性与测试覆盖缺口,当前有中等合并风险;完成上述重要问题修复后更适合合并。

@jingleizhang jingleizhang merged commit 7cc6ac8 into dev Apr 24, 2026
1 check passed
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