fix(sage): up_login 登录成功清零失败次数、失败按5分钟窗口累加
This commit is contained in:
parent
2ae61f7698
commit
69da3b21a3
@ -11,6 +11,8 @@ db = DBPools()
|
|||||||
async with db.sqlorContext('sage') as sor:
|
async with db.sqlorContext('sage') as sor:
|
||||||
r = await sor.sqlExe('select * from users where username=${username}$ and password=${password}$', ns.copy())
|
r = await sor.sqlExe('select * from users where username=${username}$ and password=${password}$', ns.copy())
|
||||||
if len(r) == 0:
|
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 {
|
return {
|
||||||
"widgettype":"Error",
|
"widgettype":"Error",
|
||||||
"options":{
|
"options":{
|
||||||
@ -19,6 +21,8 @@ async with db.sqlorContext('sage') as sor:
|
|||||||
"message":"user name or password error"
|
"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)
|
await remember_user(r[0].id, username=r[0].username, userorgid=r[0].orgid)
|
||||||
return {
|
return {
|
||||||
"widgettype":"Message",
|
"widgettype":"Message",
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user