From b0e64b22fab5dea7b29ce68710614de671fba4b2 Mon Sep 17 00:00:00 2001 From: taoshihan Date: Tue, 22 Jul 2025 16:15:11 +0800 Subject: [PATCH] =?UTF-8?q?=E7=99=BB=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- controller/login.go | 74 ++++++++++++++++++------------------- router/api.go | 2 - static/templates/login.html | 4 +- 3 files changed, 36 insertions(+), 44 deletions(-) diff --git a/controller/login.go b/controller/login.go index ab01a7d..79cedd3 100644 --- a/controller/login.go +++ b/controller/login.go @@ -4,63 +4,59 @@ import ( "github.com/gin-gonic/gin" "github.com/taoshihan1991/imaptool/models" "github.com/taoshihan1991/imaptool/tools" - "log" - "net/url" "time" ) -// @Summary 登陆验证接口 -// @Produce json +// @Summary User Authentication API +// @Description Validates user credentials and returns access token +// @Tags Authentication +// @Produce json // @Accept multipart/form-data -// @Param username formData string true "用户名" -// @Param password formData string true "密码" -// @Param type formData string true "类型" -// @Success 200 {object} controller.Response -// @Failure 200 {object} controller.Response +// @Param username formData string true "Registered username" +// @Param password formData string true "Account password" +// @Param type formData string true "Auth type (e.g., 'admin' or 'user')" +// @Success 200 {object} Response +// @Failure 401 {object} Response +// @Failure 500 {object} Response // @Router /check [post] -// 验证接口 func LoginCheckPass(c *gin.Context) { password := c.PostForm("password") username := c.PostForm("username") info := models.FindUser(username) + + // Authentication failed case if info.Name == "" || info.Password != tools.Md5(password) { c.JSON(200, gin.H{ - "code": 400, - "msg": "验证失败", + "code": 401, + "message": "Incorrect username or password", // User-friendly message }) return } - userinfo := make(map[string]interface{}) + // Prepare user session data + userinfo := map[string]interface{}{ + "kefu_name": info.Name, + "kefu_id": info.ID, + "create_time": time.Now().Unix(), + } + + // Token generation + token, err := tools.MakeToken(userinfo) + if err != nil { + c.JSON(200, gin.H{ + "code": 500, + "message": "Login temporarily unavailable", + }) + return + } - userinfo["kefu_name"] = info.Name - userinfo["kefu_id"] = info.ID - userinfo["create_time"] = time.Now().Unix() - token, _ := tools.MakeToken(userinfo) + // Successful response c.JSON(200, gin.H{ - "code": 200, - "msg": "验证成功,正在跳转", + "code": 200, + "message": "Login successful", "result": gin.H{ - "token": token, - "create_time": userinfo["create_time"], + "token": token, + "created_at": userinfo["create_time"], }, }) } - -// 远程请求 -func PostBindOfficial(c *gin.Context) { - api := "https://gofly.v1kf.com/2/officialBindIp" - - phone := c.PostForm("phone") - password := c.PostForm("password") - host := c.Request.Host - data := url.Values{} - data.Set("phone", phone) - data.Set("password", password) - data.Set("host", host) - res, err := tools.PostForm(api, data) - if err != nil { - log.Println("绑定官网账户发送认证连接错误") - } - c.Writer.Write([]byte(res)) -} diff --git a/router/api.go b/router/api.go index 8cf26b9..6bef30d 100644 --- a/router/api.go +++ b/router/api.go @@ -17,8 +17,6 @@ func InitApiRouter(engine *gin.Engine) { v2.POST("/message", middleware.Ipblack, controller.SendMessageV2) //关闭连接 v2.GET("/message_close", controller.SendCloseMessageV2) - //绑定 - v2.POST("/bindOfficial", controller.PostBindOfficial) //分页查询消息 v2.GET("/messagesPages", controller.GetMessagespages) } diff --git a/static/templates/login.html b/static/templates/login.html index f564940..edb5743 100644 --- a/static/templates/login.html +++ b/static/templates/login.html @@ -155,12 +155,10 @@ type: 'success' }); localStorage.setItem("token", response.result.token); - localStorage.setItem("ref_token", response.result.ref_token); - localStorage.setItem("create_time", response.result.create_time); window.location.href = "/main"; } else { this.$message({ - message: response.msg || 'Login failed', + message: response.message || 'Login failed', type: 'error' }); }