feat: add login failed ban ip list

This commit is contained in:
Jacky 2024-07-21 15:24:58 +08:00
parent ccb04c07d8
commit cff843b82b
No known key found for this signature in database
GPG key ID: 215C21B10DF38B4D
43 changed files with 2264 additions and 959 deletions

View file

@ -1,10 +1,12 @@
package user
import (
"errors"
"github.com/0xJacky/Nginx-UI/model"
"github.com/0xJacky/Nginx-UI/query"
"golang.org/x/crypto/bcrypt"
"errors"
"github.com/0xJacky/Nginx-UI/model"
"github.com/0xJacky/Nginx-UI/query"
"github.com/0xJacky/Nginx-UI/settings"
"golang.org/x/crypto/bcrypt"
"time"
)
var (
@ -30,3 +32,16 @@ func Login(name string, password string) (user *model.Auth, err error) {
return
}
func BanIP(ip string) {
b := query.BanIP
banIP, err := b.Where(b.IP.Eq(ip)).First()
if err != nil || banIP.ExpiredAt <= time.Now().Unix() {
_ = b.Create(&model.BanIP{
IP: ip,
Attempts: 1,
ExpiredAt: time.Now().Unix() + int64(settings.AuthSettings.BanThresholdMinutes*60),
})
}
_, _ = b.Where(b.IP.Eq(ip)).UpdateSimple(b.Attempts.Add(1))
}