fix(sage): up_login 登录成功清零失败次数、失败按5分钟窗口累加

This commit is contained in:
yumoqing 2026-08-16 17:08:03 +08:00
parent 2ae61f7698
commit 69da3b21a3

View File

@ -11,6 +11,8 @@ db = DBPools()
async with db.sqlorContext('sage') as sor:
r = await sor.sqlExe('select * from users where username=${username}$ and password=${password}$', ns.copy())
if len(r) == 0:
# 登录失败:连续失败次数 +1超过5分钟则重置为1
await sor.sqlExe("UPDATE users SET login_fail_count = CASE WHEN last_login_fail IS NULL OR last_login_fail < NOW() - INTERVAL 5 MINUTE THEN 1 ELSE login_fail_count + 1 END, last_login_fail = NOW() WHERE username=${username}$", {'username': ns['username']})
return {
"widgettype":"Error",
"options":{
@ -19,6 +21,8 @@ async with db.sqlorContext('sage') as sor:
"message":"user name or password error"
}
}
# 登录成功:清除连续失败次数
await sor.sqlExe("UPDATE users SET login_fail_count = 0, last_login_fail = NULL, last_login = NOW() WHERE id=${id}$", {'id': r[0].id})
await remember_user(r[0].id, username=r[0].username, userorgid=r[0].orgid)
return {
"widgettype":"Message",