Skip to content

fix(auth): env 登录页首次加载缺 SSO 按钮 — auth config race 让 SSO-only 用户卡死在密码墙 #2625

Description

@os-zhuang

现象(staging E2E 2026-07-17,os-6zmft7.objectos.app)

新环境第一次打开登录页时,只渲染了邮箱+密码表单——没有「Continue with ObjectStack」按钮、也没按 ssoEnforced 隐藏密码表单。刷新后才正确(SSO 按钮 + break-glass「Use a password instead」)。

服务端无辜:当时 GET /api/v1/auth/config 返回完全正确(socialProviders:[{id:'objectstack-cloud',type:'oidc'}],ssoEnforced:true)。

影响

平台 SSO(SSO-only)模式下,JIT 用户没有密码。首开即密码墙 = 新 builder 在「打开环境」的魔法时刻直接卡死,除非碰巧刷新。P1。

疑似根因

登录页在 auth config 加载完成前(或首次请求失败/超时后)fallback 渲染了纯密码表单,config 到达后不重渲染/不重试。env 刚 provision 时 kernel 冷启动,首个 config 请求容易慢/失败,放大了这个 race。

修复方向

  • config 未就绪时渲染 loading 骨架,而非默认密码表单
  • config 请求失败自动重试(带退避)
  • config 到达后强制以 config 为准重渲染(ssoEnforced → 隐藏密码表单)

🤖 Generated with Claude Code

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions