소스 검색

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

Willnow, Patrick 6 달 전
부모
커밋
1b5ac834ef
1개의 변경된 파일5개의 추가작업 그리고 0개의 파일을 삭제
  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}")
             log.warning(f"OAuth callback error: {e}")
             raise HTTPException(400, detail=ERROR_MESSAGES.INVALID_CRED)
             raise HTTPException(400, detail=ERROR_MESSAGES.INVALID_CRED)
         user_data: UserInfo = token["userinfo"]
         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")
         sub = user_data.get("sub")
         if not sub:
         if not sub: