feat: add login log record

This commit is contained in:
engigu
2025-10-01 00:19:48 +08:00
parent 456d3aaf46
commit 6dbc8352e9
9 changed files with 156 additions and 8 deletions
+14 -8
View File
@@ -1,15 +1,16 @@
package api
import (
"fmt"
"net/http"
"fmt"
"net/http"
"github.com/gin-gonic/gin"
"github.com/gin-gonic/gin"
"message-nest/pkg/app"
"message-nest/pkg/e"
"message-nest/pkg/util"
"message-nest/service/auth_service"
"message-nest/pkg/app"
"message-nest/pkg/e"
"message-nest/pkg/util"
"message-nest/service/auth_service"
"message-nest/models"
)
type auth struct {
@@ -51,7 +52,12 @@ func GetAuth(c *gin.Context) {
return
}
appG.CResponse(http.StatusOK, "登录成功!", map[string]string{
// 查询用户ID并记录登录日志
if u, _ := models.GetUserByUsername(req.Username); u != nil {
_ = models.AddLoginLog(u.ID, req.Username, c.ClientIP(), c.GetHeader("User-Agent"))
}
appG.CResponse(http.StatusOK, "登录成功!", map[string]string{
"token": token,
})
}
+23
View File
@@ -0,0 +1,23 @@
package v1
import (
"github.com/gin-gonic/gin"
"message-nest/pkg/app"
"message-nest/pkg/e"
"message-nest/models"
)
// GetRecentLoginLogs 最近登录日志(默认8条)
func GetRecentLoginLogs(c *gin.Context) {
appG := app.Gin{C: c}
logs, err := models.GetRecentLoginLogs(8)
if err != nil {
appG.CResponse(e.ERROR, err.Error(), nil)
return
}
appG.CResponse(e.SUCCESS, "success", gin.H{
"lists": logs,
})
}
+3
View File
@@ -82,6 +82,9 @@ func InitRouter(f embed.FS) *gin.Engine {
apiV1.POST("/settings/reset", v1.RestDefaultSettings)
apiV1.GET("/settings/getsetting", v1.GetUserSetting)
// login logs
apiV1.GET("/loginlogs/recent", v1.GetRecentLoginLogs)
// statistic
apiV1.GET("/statistic", v1.GetStatisticData)