SSO 回调 BFF 化:PKCE code_verifier 换 token → 验 id_token(签名/iss/aud/exp/nonce)+ email_verified=true → 身份主键 (org,issuer,sub):命中直登;首次须既有账号 + 本 org 已邀请成员,经 OTP 二次确认。回调**不再 JSON 返 token**——成功恒 302 携一次性 code(BFF /v1/auth/sso/exchange 换 token),首次关联 302 到 confirm 页携一次性 link;全程 Cache-Control: no-store
GET
/v1/auth/sso/{orgId}/callback
Responses
Section titled “Responses”成功:302 到门户回调页(?code=… 一次性登录 code)或 confirm 页(?link=… 首次关联 OTP 二次确认)
Media typeapplication/json
object
key
additional properties
any
Examplegenerated
{}Bad_request(state 缺失/未知/过期/不属本 org)
Media typeapplication/json
object
error
required
object
code
required
错误码注册表单源派生(src/http/errors.ts ERROR_CODES;码稳定,消费方按码翻译)
string
message
required
string
requestId
required
string
detail
object
Example
{ "error": { "code": "adjudicator_not_authorized" }}Unauthorized(码换 token 被拒 / id_token 校验失败 / sub 缺失)
Media typeapplication/json
object
error
required
object
code
required
错误码注册表单源派生(src/http/errors.ts ERROR_CODES;码稳定,消费方按码翻译)
string
message
required
string
requestId
required
string
detail
object
Example
{ "error": { "code": "adjudicator_not_authorized" }}Idp_untrusted(issuer 未受信/发现不一致/JWKS 非法)/ forbidden(SSO 停用 / email 未验证 / 无 email / 域不匹配 / 无既有账号 / 非邀请成员 / 账号不可用)
Media typeapplication/json
object
error
required
object
code
required
错误码注册表单源派生(src/http/errors.ts ERROR_CODES;码稳定,消费方按码翻译)
string
message
required
string
requestId
required
string
detail
object
Example
{ "error": { "code": "adjudicator_not_authorized" }}本文是否有帮助?
感谢反馈,我们会持续改进这篇文章。