mirror of
https://github.com/langbot-app/LangBot.git
synced 2026-08-14 14:31:00 +00:00
feat: check user existence when authing
This commit is contained in:
@@ -75,6 +75,11 @@ class RouterGroup(abc.ABC):
|
|||||||
try:
|
try:
|
||||||
user_email = await self.ap.user_service.verify_jwt_token(token)
|
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参数
|
# 检查f是否接受user_email参数
|
||||||
if 'user_email' in f.__code__.co_varnames:
|
if 'user_email' in f.__code__.co_varnames:
|
||||||
kwargs['user_email'] = user_email
|
kwargs['user_email'] = user_email
|
||||||
|
|||||||
@@ -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:
|
async def authenticate(self, user_email: str, password: str) -> str | None:
|
||||||
result = await self.ap.persistence_mgr.execute_async(
|
result = await self.ap.persistence_mgr.execute_async(
|
||||||
sqlalchemy.select(user.User).where(user.User.user == user_email)
|
sqlalchemy.select(user.User).where(user.User.user == user_email)
|
||||||
|
|||||||
@@ -83,7 +83,7 @@ class PersistenceManager:
|
|||||||
'stages': pipeline_service.default_stage_order,
|
'stages': pipeline_service.default_stage_order,
|
||||||
'is_default': True,
|
'is_default': True,
|
||||||
'name': 'Chat Pipeline',
|
'name': 'Chat Pipeline',
|
||||||
'description': '默认对话配置流水线',
|
'description': '默认提供的流水线,您配置的机器人、第一个模型将自动绑定到此流水线',
|
||||||
'config': pipeline_config,
|
'config': pipeline_config,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user