mirror of
https://github.com/infiniflow/ragflow.git
synced 2026-02-02 00:25:06 +08:00
Fix: try handle authorization as api-token (#12462)
### What problem does this PR solve? Try handle authorization as api-token when jwt load failed. ### Type of change - [x] Bug Fix (non-breaking change which fixes an issue)
This commit is contained in:
@ -125,18 +125,28 @@ def _load_user():
|
|||||||
user = UserService.query(
|
user = UserService.query(
|
||||||
access_token=access_token, status=StatusEnum.VALID.value
|
access_token=access_token, status=StatusEnum.VALID.value
|
||||||
)
|
)
|
||||||
if not user and len(authorization.split()) == 2:
|
|
||||||
objs = APIToken.query(token=authorization.split()[1])
|
|
||||||
if objs:
|
|
||||||
user = UserService.query(id=objs[0].tenant_id, status=StatusEnum.VALID.value)
|
|
||||||
if user:
|
if user:
|
||||||
if not user[0].access_token or not user[0].access_token.strip():
|
if not user[0].access_token or not user[0].access_token.strip():
|
||||||
logging.warning(f"User {user[0].email} has empty access_token in database")
|
logging.warning(f"User {user[0].email} has empty access_token in database")
|
||||||
return None
|
return None
|
||||||
g.user = user[0]
|
g.user = user[0]
|
||||||
return user[0]
|
return user[0]
|
||||||
except Exception as e:
|
except Exception as e_auth:
|
||||||
logging.warning(f"load_user got exception {e}")
|
logging.warning(f"load_user got exception {e_auth}")
|
||||||
|
try:
|
||||||
|
authorization = request.headers.get("Authorization")
|
||||||
|
if len(authorization.split()) == 2:
|
||||||
|
objs = APIToken.query(token=authorization.split()[1])
|
||||||
|
if objs:
|
||||||
|
user = UserService.query(id=objs[0].tenant_id, status=StatusEnum.VALID.value)
|
||||||
|
if user:
|
||||||
|
if not user[0].access_token or not user[0].access_token.strip():
|
||||||
|
logging.warning(f"User {user[0].email} has empty access_token in database")
|
||||||
|
return None
|
||||||
|
g.user = user[0]
|
||||||
|
return user[0]
|
||||||
|
except Exception as e_api_token:
|
||||||
|
logging.warning(f"load_user got exception {e_api_token}")
|
||||||
|
|
||||||
|
|
||||||
current_user = LocalProxy(_load_user)
|
current_user = LocalProxy(_load_user)
|
||||||
|
|||||||
Reference in New Issue
Block a user