diff --git a/app/auth.py b/app/auth.py index 2027559..3a30693 100644 --- a/app/auth.py +++ b/app/auth.py @@ -85,12 +85,19 @@ async def auth_callback(request: Request, code: str, state: str): import secrets random_suffix = secrets.token_hex(3) # 生成 6 位随机字符 suggested_handle = f"{base_handle}_{random_suffix}" + + # 如果 Google 没有头像,使用 DiceBear 头像生成器作为兜底 + google_avatar = user_info.get("picture") + if not google_avatar: + default_avatar_url = f"https://api.dicebear.com/7.x/lorelei/svg?seed={base_handle}" + else: + default_avatar_url = google_avatar user = User( google_id=user_info["id"], email=user_info["email"], name=user_info["name"], - avatar=user_info["picture"], + avatar=default_avatar_url, handle=suggested_handle, ) db.add(user)