Skip to content

[fix] SSO 登入撞既有 Google 帳號回 error=UNKNOWN:開 domainVerification、補 domain_verified - #57

Merged
YJack0000 merged 1 commit into
mainfrom
claude/sso-domain-verified-hotfix
Aug 28, 2026
Merged

[fix] SSO 登入撞既有 Google 帳號回 error=UNKNOWN:開 domainVerification、補 domain_verified#57
YJack0000 merged 1 commit into
mainfrom
claude/sso-domain-verified-hotfix

Conversation

@YJack0000

Copy link
Copy Markdown
Contributor

PR #56 上線後第一個實地回報:已用 Google 登入過的員工改走「Continue with SSO」,callback 被踢回 /?error=UNKNOWN

根因:@better-auth/sso 的 OIDC callback 只在 provider.domainVerified === true 且登入者 email 網域與 provider 註冊網域相符時,才把這次登入視為 trusted provider;不 trusted 就拒絕 link 到既有的同 email user(better-auth link-account 的安全規則)。我們的 sso_provider 表沒建 domain_verified 欄(該欄只在開 domainVerification 選項時屬於 schema),所以永遠不信任 → 同 email 既有帳號一律連結失敗。

修法(語意上也是對的信任模型——「網域已驗證 + email 網域相符」,不用硬編 provider 名單):

  • sso({ domainVerification: { enabled: true } })
  • schema + migrations/0021_sso_domain_verified.sql:加 domain_verified boolean NOT NULL DEFAULT false,既有 row 補 true(全部都是腳本註冊的)
  • scripts/register-sso-provider.ts 註冊時直接寫 domainVerified: true(我們封死了 HTTP 註冊、不用 DNS TXT 驗證流程;腳本註冊即驗證)

migration 已於 2026-08-28 先行套用到 prod(pathors provider 已 domain_verified = t),merge 部署後即刻生效。lint / tsc / build 全過。

@YJack0000
YJack0000 requested a review from yui0303 August 28, 2026 10:54
@YJack0000
YJack0000 enabled auto-merge (squash) August 28, 2026 10:54
@YJack0000
YJack0000 force-pushed the claude/sso-domain-verified-hotfix branch from bc21504 to 8439a1f Compare August 28, 2026 10:57
@github-actions

Copy link
Copy Markdown

✅ SonarQube Quality Gate passed — pathorsAI_internal

0 open issues on this PR.

@YJack0000
YJack0000 merged commit d521663 into main Aug 28, 2026
2 checks 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.

1 participant