From 174cf84cefeb74d9e2184c931eec6fe55194dde3 Mon Sep 17 00:00:00 2001 From: Your Name Date: Thu, 16 Apr 2026 14:58:16 +0800 Subject: [PATCH] =?UTF-8?q?fix(oidc):=20=E5=8D=A0=E4=BD=8D=E7=94=A8?= =?UTF-8?q?=E6=88=B7username=E4=BD=BF=E7=94=A8sub=E5=93=88=E5=B8=8C?= =?UTF-8?q?=E9=81=BF=E5=85=8D=E5=94=AF=E4=B8=80=E7=B4=A2=E5=BC=95=E5=86=B2?= =?UTF-8?q?=E7=AA=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/package/yuxi/services/oidc_service.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/backend/package/yuxi/services/oidc_service.py b/backend/package/yuxi/services/oidc_service.py index aeed2a23..d47ac136 100644 --- a/backend/package/yuxi/services/oidc_service.py +++ b/backend/package/yuxi/services/oidc_service.py @@ -571,8 +571,13 @@ async def _create_oidc_binding_placeholder(db, sub: str, target_user: User) -> N random_password = secrets.token_urlsafe(32) password_hash = AuthUtils.hash_password(random_password) + # username 使用 oidc-binding-{sub_hash} 避免冲突,sub_hash 基于完整 sub 生成 + import hashlib + sub_hash = hashlib.sha256(sub.encode()).hexdigest()[:8] + username = f"oidc-binding-{sub_hash}" + placeholder_user = User( - username=f"oidc-binding-{sub[:8]}", + username=username, user_id=oidc_placeholder_id, phone_number=None, avatar=None,