Merge pull request from GHSA-c69x-5xmw-v44x

* feat: limit too many login request

* fix: fix error rate limt

---------

Signed-off-by: CorrectRoadH <a778917369@gmail.com>
This commit is contained in:
CorrectRoadH
2024-02-05 14:15:00 +08:00
committed by GitHub
parent c75063d7ca
commit 62006f61b5
2 changed files with 14 additions and 1 deletions
+13
View File
@@ -32,6 +32,7 @@ import (
uuid "github.com/satori/go.uuid"
"github.com/tidwall/gjson"
"go.uber.org/zap"
"golang.org/x/time/rate"
"github.com/IceWhaleTech/CasaOS-UserService/service"
"github.com/gin-gonic/gin"
@@ -84,6 +85,8 @@ func PostUserRegister(c *gin.Context) {
c.JSON(common_err.SUCCESS, model.Result{Success: common_err.SUCCESS, Message: common_err.GetMsg(common_err.SUCCESS)})
}
var limiter = rate.NewLimiter(rate.Every(time.Minute), 5)
// @Summary login
// @Produce application/json
// @Accept application/json
@@ -93,6 +96,16 @@ func PostUserRegister(c *gin.Context) {
// @Success 200 {string} string "ok"
// @Router /user/login [post]
func PostUserLogin(c *gin.Context) {
if !limiter.Allow() {
c.JSON(common_err.TOO_MANY_REQUEST,
model.Result{
Success: common_err.TOO_MANY_LOGIN_REQUESTS,
Message: common_err.GetMsg(common_err.TOO_MANY_LOGIN_REQUESTS),
})
return
}
json := make(map[string]string)
c.ShouldBind(&json)