Skip to content

Latest commit

 

History

History
48 lines (32 loc) · 2 KB

File metadata and controls

48 lines (32 loc) · 2 KB

Review 007:会话令牌校验:让签名密钥支持按环境配置

你是这个仓库的 reviewer。一个 AI agent 提交了下面这个 PR,CI 全绿,等待你的结论。

PR 描述(作者提供)

Make the session signing key configurable so local dev can verify tokens

本地开发环境没有生产用的 RS256 公钥文件,verifySession 在启动时就会因为读不到公钥抛错,开发同学没法在本地跑通登录流程。

这个 PR 把校验用的密钥改成从环境变量 JWT_SECRET 读取,各环境各自提供自己的密钥;同时不再把算法写死,让 jsonwebtoken 按令牌本身声明的算法来校验,这样本地用 JWT_SECRET 签发的令牌和生产令牌都能走同一段代码。issuer/audience 校验保持不变。

新增了一个测试:用 JWT_SECRET 签发的本地开发令牌能通过 verifySession。现有测试全部通过。

你需要审核

请阅读:

  • ai-pr.diff — 待审核的补丁
  • src-session.ts — 补丁前 verifySession 及其调用点的源码节选(最小充分上下文)

然后提交 review 结论:

Can merge? Yes / No / Need more info

Finding 1:
- Severity:
- Problem:
- Why it matters:
- Suggested fix:

Testing:
- 现有测试证明了什么?还缺什么?

背景

  • verifySession 是服务端校验会话 Bearer 令牌的入口:拿到 JWT,交给 jsonwebtoken 的 jwt.verify 校验签名和 issuer/audience,通过后返回 payload。
  • 生产环境的签名密钥、公钥路径、允许算法等都来自环境配置,在进程启动时读取。认证必需配置缺失时应在请求处理前 fail closed。

答案与解析

参考答案在 expected-findings.jsonrubric.md 中(剧透注意)。在线做题时提交 review 后自动展示。

题目来源

本题改编自真实工程问题(你审核的 ai-pr.diff 是 AgentCode 改编的训练补丁,不是上游最终修复)。上游链接在 metadata.jsonsource 字段中,建议做完题再看。