Skip to content

v1.7.0 发布说明

发布日期:2026-03-17

v1.7.0 是一次面向第三方接入模型的版本发布,重点不是单点修复,而是把终端用户认证入口、React SDK、Go SDK 配套方式和微信公众号登录链路统一到一套更稳定的最佳实践上。

本次版本建议所有第三方工程师先阅读:

本次版本包含什么

1. 终端用户入口改为租户路径模型

终端用户登录、注册、忘记密码和账户中心,统一切到租户路径:

  • /t/{tenant.slug}/sign-in
  • /t/{tenant.slug}/register
  • /t/{tenant.slug}/forgot-password
  • /t/{tenant.slug}/account-center/...

这意味着:

  • 第三方不应再继续依赖裸 /sign-in
  • 第三方不应再继续依赖裸 /account-center
  • 需要终端用户入口时,应优先使用官方 SDK helper 或后端返回地址

2. React SDK 接入模型收口

当前推荐的 React SDK 版本为:

  • @codebird/react@0.4.3

这一版补齐了第三方最容易出问题的几条链路:

  • 官方认证守卫 CodeBirdAuthGuard
  • 短 TTL Access Token 的动态过期判断
  • 自动续期时保留当前应用的 resource
  • refresh 成功后同步更新本地 expires_at / token_type / scope
  • refresh token 失效后自动清理本地登录态,稳定切回未认证状态

推荐第三方统一做法:

  • 使用 CodeBirdProvider
  • 使用 CodeBirdCallback
  • 使用 CodeBirdAuthGuard
  • 未认证时在 onUnauthenticated 中调用 auth.signIn()
  • 不自己维护 oidc-client-ts
  • 不自己写 refresh 逻辑
  • 不自己根据 expires_at 再做一层守卫判断

3. Go SDK 与后端配套口径明确

当前推荐的 Go SDK 版本为:

  • github.com/lshaofan/codebird-go-sdk@v0.2.2

推荐职责划分:

  • React 前端:统一处理登录、回调、token 自动续期、实时会话上下文
  • Go 后端:统一处理用户 token 验签、claims 解析、实时会话上下文拉取

关键口径必须一致:

  • 前端 endpoint
  • Go Issuer
  • 前端 defaultResource
  • Go Audience

4. OIDC refresh 链路修复

本次版本修复了一个会在短 TTL 场景暴露出来的问题:

  • 当第三方应用在 refresh 请求里带 resource
  • 但服务端 client audience 白名单没有正确推导时
  • refresh 会被拒绝

v1.7.0 已经把 audience 推导逻辑补齐,来源包括:

  • 应用配置中的 redirect_uris
  • cors_allowed_origins
  • 显式 audience/resources 元数据

5. 微信公众号登录链路重构

旧的微信相关直登实现已经被替换为更清晰的公众号登录模型,重点包括:

  • 微信登录会话独立建模
  • 登录过程显式保存 tenant_id
  • 绑定手机号、验证码校验、用户查找和用户创建都按扫码会话所属租户执行
  • 不再回退 DefaultTenantID

第三方升级影响

必须关注的 breaking change

如果第三方项目存在以下行为,本次升级后应尽快调整:

  • 手工拼接裸 /sign-in
  • 手工拼接裸 /register
  • 手工拼接裸 /forgot-password
  • 手工拼接裸 /account-center/...

正确做法是:

  • 终端用户入口统一改为租户路径
  • 优先使用官方 SDK helper
  • 或使用后端返回的最终跳转地址

一般不需要改动的场景

如果第三方只是:

  • 通过标准 OIDC 授权流程接入
  • React 前端使用官方 React SDK
  • 后端使用官方 Go SDK 做验签与实时上下文

那么大多数改动都已经由认证中心和 SDK 吸收。

推荐联调顺序

1. 正常登录

预期:

  • 正常进入 callback
  • 页面进入已登录态

2. Access Token 过期但 Refresh Token 有效

建议测试值:

  • Access Token:10s
  • Refresh Token:120s

预期:

  • React SDK 自动续期
  • 页面不跳回登录页
  • /oidc/token 的 refresh 请求返回 200

3. Refresh Token 过期

建议测试值:

  • Access Token:10s
  • Refresh Token:20s

预期:

  • SDK 清理本地登录态
  • CodeBirdAuthGuard 进入未认证逻辑
  • 第三方自动调用 auth.signIn() 重新登录

4. 实时上下文

预期:

  • 可以读取 tenant.slug
  • 可以读取最新 organization.is_admin
  • 不依赖旧的本地 claims 缓存来判断组织权限

升级后不推荐的旧做法

  • 前端自己直接调用 /oidc/token
  • 前端自己监听 token 过期事件再强制跳登录
  • 前端自己根据 expires_at 判断是否未登录
  • 前端自己接管 oidc-client-ts UserManager
  • 后端自己手写 JWT 验签和 claims 拆解

推荐版本

截至 2026-03-17,当前推荐搭配是:

  • 主项目:v1.7.0
  • React SDK:@codebird/react@0.4.3
  • Go SDK:github.com/lshaofan/codebird-go-sdk@v0.2.2

继续阅读

Released under the MIT License.