diff --git a/internal/handler/ghome/account/login.go b/internal/handler/ghome/account/login.go index cf68a2c..b6832a6 100644 --- a/internal/handler/ghome/account/login.go +++ b/internal/handler/ghome/account/login.go @@ -62,7 +62,7 @@ func login(ctx *gin.Context) { if ss.CheckErr(err) { return } - phone, password := strings.TrimSpace(params.Get("phone")), params.Get("password") + phone, password := normalizePhone(params.Get("phone")), params.Get("password") if phone == "" || password == "" { ss.Abort(errors.New("invalid login params")) return @@ -95,6 +95,10 @@ func AddUser(phone, password string, isDefault bool) (ghomeschema.LoginData, int loginMsg := "ok" loginTime := time.Now().Unix() created := false + phone = normalizePhone(phone) + if phone == "" { + return loginData, loginCode, loginMsg, created, errors.New("invalid phone") + } var userID int var pass, autoKey, ticket string @@ -373,6 +377,19 @@ func getAvailableUserID(seed int) (int, error) { return 0, errors.New("failed to allocate user id") } +func normalizePhone(phone string) string { + phone = strings.TrimSpace(phone) + if phone == "" { + return "" + } + + // 客户端上传的手机号可能带国家/地区区号,如 "86-13800000000"。 + if idx := strings.Index(phone, "-"); idx >= 0 && idx+1 < len(phone) { + return strings.TrimSpace(phone[idx+1:]) + } + return phone +} + func init() { router.AddHandler("v1", "POST", "/account/login", login) } diff --git a/internal/handler/webui/login.go b/internal/handler/webui/login.go index 0f1a16c..3cc2e1b 100644 --- a/internal/handler/webui/login.go +++ b/internal/handler/webui/login.go @@ -14,10 +14,9 @@ import ( ) func login(ctx *gin.Context) { - area := ctx.PostForm("area") user := ctx.PostForm("user") pass := ctx.PostForm("pass") - if area == "" || user == "" || pass == "" { + if user == "" || pass == "" { ctx.JSON(http.StatusOK, webuischema.Msg{ Code: 1, Message: "参数不完整!", @@ -26,10 +25,9 @@ func login(ctx *gin.Context) { return } - userName := " " + area + "-" + user var userId int exists, err := db.UserEng.Table("users"). - Where("phone = ? AND password = ?", userName, openssl.Md5ToString(pass)). + Where("phone = ? AND password = ?", user, openssl.Md5ToString(pass)). Cols("user_id").Get(&userId) utils.CheckErr(err) if !exists { diff --git a/internal/startup/defaultuser.go b/internal/startup/defaultuser.go index 97518cb..33482a5 100644 --- a/internal/startup/defaultuser.go +++ b/internal/startup/defaultuser.go @@ -6,7 +6,7 @@ import ( ) const ( - defaultPhone = "86-1" + defaultPhone = "1" defaultPassword = "klsbgames" ) diff --git a/static/templates/admin/login.html b/static/templates/admin/login.html index 64070d3..80e8ae3 100644 --- a/static/templates/admin/login.html +++ b/static/templates/admin/login.html @@ -44,7 +44,7 @@ $(".login-btn").click(function () { layer.open({ type: 1, - area: ['600px', '280px'], + area: ['600px', '230px'], title: "登录", content: $('#login-form'), shade: 0 @@ -52,13 +52,11 @@ }) $("#login-submit").click(function () { - let area = $("#area option:selected").val(); let user = $("#sifuser").val(); let pass = $("#sifpass").val(); - console.log(area) console.log(user) console.log(pass) - $.post("/admin/login", { area: area, user: user, pass: pass }, function (data) { + $.post("/admin/login", { user: user, pass: pass }, function (data) { if (data.code != 0) { layer.msg(data.message) return @@ -75,20 +73,6 @@