Browse Source

fix: get userinfo from endpoint, not only from token
as was suggested by @alvarolopez in #6262

Willnow, Patrick 6 months ago
parent
commit
1b5ac834ef
1 changed files with 5 additions and 0 deletions
  1. 5 0
      backend/open_webui/utils/oauth.py

+ 5 - 0
backend/open_webui/utils/oauth.py

@@ -139,6 +139,11 @@ class OAuthManager:
             log.warning(f"OAuth callback error: {e}")
             raise HTTPException(400, detail=ERROR_MESSAGES.INVALID_CRED)
         user_data: UserInfo = token["userinfo"]
+        if not user_data:
+            user_data: UserInfo = await client.userinfo(token=token)
+        if not user_data:
+            log.warning(f"OAuth callback failed, user data is missing: {token}")
+            raise HTTPException(400, detail=ERROR_MESSAGES.INVALID_CRED)
 
         sub = user_data.get("sub")
         if not sub: