浏览代码

Check is response is OK from retrieve the picture if not then default

Rodrigo Agundez 2 月之前
父节点
当前提交
546ef6ab42
共有 1 个文件被更改,包括 12 次插入9 次删除
  1. 12 9
      backend/open_webui/utils/oauth.py

+ 12 - 9
backend/open_webui/utils/oauth.py

@@ -261,15 +261,18 @@ class OAuthManager:
                             }
                             }
                         async with aiohttp.ClientSession() as session:
                         async with aiohttp.ClientSession() as session:
                             async with session.get(picture_url, **get_kwargs) as resp:
                             async with session.get(picture_url, **get_kwargs) as resp:
-                                picture = await resp.read()
-                                base64_encoded_picture = base64.b64encode(
-                                    picture
-                                ).decode("utf-8")
-                                guessed_mime_type = mimetypes.guess_type(picture_url)[0]
-                                if guessed_mime_type is None:
-                                    # assume JPG, browsers are tolerant enough of image formats
-                                    guessed_mime_type = "image/jpeg"
-                                picture_url = f"data:{guessed_mime_type};base64,{base64_encoded_picture}"
+                                if resp.ok:
+                                    picture = await resp.read()
+                                    base64_encoded_picture = base64.b64encode(
+                                        picture
+                                    ).decode("utf-8")
+                                    guessed_mime_type = mimetypes.guess_type(picture_url)[0]
+                                    if guessed_mime_type is None:
+                                        # assume JPG, browsers are tolerant enough of image formats
+                                        guessed_mime_type = "image/jpeg"
+                                    picture_url = f"data:{guessed_mime_type};base64,{base64_encoded_picture}"
+                                else:
+                                    picture_url = "/user.png"
                     except Exception as e:
                     except Exception as e:
                         log.error(
                         log.error(
                             f"Error downloading profile image '{picture_url}': {e}"
                             f"Error downloading profile image '{picture_url}': {e}"