feat: check user existence when authing

This commit is contained in:
Junyan Qin
2025-05-10 15:32:41 +08:00
parent 90b479b9d2
commit e914d93c25
3 changed files with 14 additions and 1 deletions

View File

@@ -75,6 +75,11 @@ class RouterGroup(abc.ABC):
try:
user_email = await self.ap.user_service.verify_jwt_token(token)
# check if this account exists
user = await self.ap.user_service.get_user_by_email(user_email)
if not user:
return self.http_status(401, -1, '用户不存在')
# 检查f是否接受user_email参数
if 'user_email' in f.__code__.co_varnames:
kwargs['user_email'] = user_email

View File

@@ -35,6 +35,14 @@ class UserService:
)
)
async def get_user_by_email(self, user_email: str) -> user.User | None:
result = await self.ap.persistence_mgr.execute_async(
sqlalchemy.select(user.User).where(user.User.user == user_email)
)
result_list = result.all()
return result_list[0] if result_list is not None and len(result_list) > 0 else None
async def authenticate(self, user_email: str, password: str) -> str | None:
result = await self.ap.persistence_mgr.execute_async(
sqlalchemy.select(user.User).where(user.User.user == user_email)

View File

@@ -83,7 +83,7 @@ class PersistenceManager:
'stages': pipeline_service.default_stage_order,
'is_default': True,
'name': 'Chat Pipeline',
'description': '默认对话配置流水线',
'description': '默认提供的流水线,您配置的机器人、第一个模型将自动绑定到此流水线',
'config': pipeline_config,
}