feat: 登录验证
This commit is contained in:
parent
fcc5d11804
commit
b1492434a0
|
|
@ -57,7 +57,7 @@ async def lifespan(app: FastAPI):
|
|||
)
|
||||
logger.info("初始化数据库")
|
||||
# 定时器
|
||||
scheduler.add_job(clear_session, "interval", seconds=5)
|
||||
scheduler.add_job(clear_session, "interval", seconds=30, misfire_grace_time=10)
|
||||
scheduler.start()
|
||||
logger.info("初始化定时器")
|
||||
|
||||
|
|
@ -78,7 +78,7 @@ def create_app():
|
|||
return {"message": "hello"}
|
||||
|
||||
@app.get(
|
||||
"/check_init",
|
||||
"/api/check_init",
|
||||
tags=["System"],
|
||||
description="系统是否初始化",
|
||||
response_model=InitStatusResponse,
|
||||
|
|
@ -87,7 +87,7 @@ def create_app():
|
|||
return InitStatusResponse(data=await is_init())
|
||||
|
||||
@app.post(
|
||||
"/init_system",
|
||||
"/api/init_system",
|
||||
tags=["System"],
|
||||
description="系统初始化",
|
||||
response_model=InitStatusResponse,
|
||||
|
|
@ -121,7 +121,10 @@ def create_app():
|
|||
return InitStatusResponse(success=False, message=str(e))
|
||||
|
||||
@app.post(
|
||||
"/login", tags=["User"], description="用户登录", response_model=LoginResponse
|
||||
"/api/login",
|
||||
tags=["User"],
|
||||
description="用户登录",
|
||||
response_model=LoginResponse,
|
||||
)
|
||||
async def login(login_info: LoginRequest):
|
||||
user = await DB.User.filter(
|
||||
|
|
@ -137,15 +140,27 @@ def create_app():
|
|||
return LoginResponse(success=False, message="帐号或密码错误")
|
||||
|
||||
@app.post(
|
||||
"/logout", tags=["User"], description="退出登录", response_model=BaseResponse
|
||||
"/api/logout",
|
||||
tags=["User"],
|
||||
description="退出登录",
|
||||
response_model=BaseResponse,
|
||||
)
|
||||
async def logout(token: str):
|
||||
sessions.pop(token, None)
|
||||
logger.info(sessions)
|
||||
return BaseResponse()
|
||||
|
||||
@app.get(
|
||||
"/api/current_user",
|
||||
tags=["User"],
|
||||
description="当前用户信息",
|
||||
response_model=LoginResponse,
|
||||
)
|
||||
async def current_user(user: DB.User = Depends(get_current_user)):
|
||||
return LoginResponse(data=user.json(del_columns=["password"]))
|
||||
|
||||
@app.post(
|
||||
"/run", tags=["Flow"], description="执行命令", response_model=BaseResponse
|
||||
"/api/run", tags=["Flow"], description="执行命令", response_model=BaseResponse
|
||||
)
|
||||
async def flow_run(id: int):
|
||||
nodes = []
|
||||
|
|
@ -167,7 +182,7 @@ def create_app():
|
|||
nodes.append(cmd_node_3)
|
||||
|
||||
# 设置依赖关系: node0 - "true" >> node1 - "true" >> node2
|
||||
for i in range(len(nodes) -1):
|
||||
for i in range(len(nodes) - 1):
|
||||
nodes[i] - "true" >> nodes[i + 1]
|
||||
|
||||
flow = F.AsyncFlow(git_node_0)
|
||||
|
|
@ -209,10 +224,8 @@ def create_app():
|
|||
)
|
||||
},
|
||||
"01K3JHS5HTY78Z4EYWRFW5TA77": {
|
||||
"cmd": "\n".join([
|
||||
"pwd"
|
||||
]),
|
||||
}
|
||||
"cmd": "\n".join(["pwd"]),
|
||||
},
|
||||
}
|
||||
)
|
||||
shared = {}
|
||||
|
|
|
|||
|
|
@ -8,6 +8,12 @@ class BaseModel(Model):
|
|||
|
||||
def json(self, del_columns=None):
|
||||
user_json = dict(self)
|
||||
user_json["create_time"] = (
|
||||
self.create_time.strftime("%Y-%m-%d %H:%M:%S") if self.create_time else ""
|
||||
)
|
||||
user_json["update_time"] = (
|
||||
self.update_time.strftime("%Y-%m-%d %H:%M:%S") if self.update_time else ""
|
||||
)
|
||||
if del_columns is not None:
|
||||
for column in del_columns:
|
||||
try:
|
||||
|
|
|
|||
|
|
@ -10,4 +10,4 @@ class LoginRequest(BaseModel):
|
|||
return hashlib.md5(self.password.encode()).hexdigest()
|
||||
|
||||
class LoginResponse(BaseResponse):
|
||||
data: dict | None
|
||||
data: dict | None = None
|
||||
Loading…
Reference in New Issue