feat(identity): 接入认证中心多租户登录

支持 Manifest V2 动态 tid 验证、Tenant Context 同步和租户内 JIT 投影,并保留 Manifest V1 与旧 Session 兼容。\n\n增加 tenantHint、租户切换、普通注册关闭及 application/principal/tenant 两级 SSF 撤销;迁移、定向安全测试和本地双租户跨仓 E2E 已通过。\n\nrelease_required=true;未执行 Release、Staging 或真实链路。
This commit is contained in:
2026-07-28 17:28:35 +08:00
parent 0b02e62c72
commit 5c679ff13f
45 changed files with 2986 additions and 139 deletions
+6 -4
View File
@@ -25,6 +25,8 @@ export function AuthPanel(props: {
oidcEnabled: boolean;
onOIDCLogin: () => void;
}) {
const visibleTabs = props.oidcEnabled ? tabs.filter((tab) => tab.value !== 'register') : tabs;
const visibleMode = props.oidcEnabled && props.authMode === 'register' ? 'login' : props.authMode;
return (
<section className="authShell" aria-label="登录">
<Card className="authCard">
@@ -41,10 +43,10 @@ export function AuthPanel(props: {
使
</Button>
)}
<Tabs value={props.authMode} tabs={tabs} onValueChange={props.onAuthModeChange} />
{props.authMode === 'login' && <LoginFormView {...props} />}
{props.authMode === 'register' && <RegisterFormView {...props} />}
{props.authMode === 'external' && <ExternalTokenForm {...props} />}
<Tabs value={visibleMode} tabs={visibleTabs} onValueChange={props.onAuthModeChange} />
{visibleMode === 'login' && <LoginFormView {...props} />}
{visibleMode === 'register' && <RegisterFormView {...props} />}
{visibleMode === 'external' && <ExternalTokenForm {...props} />}
</CardContent>
</Card>
</section>