feat: 注册短信验证码验证功能已经开启

This commit is contained in:
RockYang
2023-07-02 20:51:13 +08:00
parent a2b1924e00
commit 72cc6f3d75
21 changed files with 457 additions and 53 deletions

View File

@@ -3,6 +3,7 @@ package handler
import (
"chatplus/core"
"chatplus/core/types"
"chatplus/store"
"chatplus/store/model"
"chatplus/store/vo"
"chatplus/utils"
@@ -21,10 +22,11 @@ type UserHandler struct {
BaseHandler
db *gorm.DB
searcher *xdb.Searcher
levelDB *store.LevelDB
}
func NewUserHandler(app *core.AppServer, db *gorm.DB, searcher *xdb.Searcher) *UserHandler {
handler := &UserHandler{db: db, searcher: searcher}
func NewUserHandler(app *core.AppServer, db *gorm.DB, searcher *xdb.Searcher, levelDB *store.LevelDB) *UserHandler {
handler := &UserHandler{db: db, searcher: searcher, levelDB: levelDB}
handler.App = app
return handler
}
@@ -35,6 +37,8 @@ func (h *UserHandler) Register(c *gin.Context) {
var data struct {
Username string `json:"username"`
Password string `json:"password"`
Mobile string `json:"mobile"`
Code int `json:"code"`
}
if err := c.ShouldBindJSON(&data); err != nil {
resp.ERROR(c, types.InvalidArgs)
@@ -52,6 +56,16 @@ func (h *UserHandler) Register(c *gin.Context) {
return
}
// 检查验证码
key := CodeStorePrefix + data.Mobile
code, err := h.levelDB.Get(key)
if err != nil || int(code.(float64)) != data.Code {
resp.ERROR(c, "短信验证码错误")
return
} else {
_ = h.levelDB.Delete(key) // 删除短信验证码
}
// check if the username is exists
var item model.User
tx := h.db.Where("username = ?", data.Username).First(&item)
@@ -89,7 +103,7 @@ func (h *UserHandler) Register(c *gin.Context) {
var cfg model.Config
h.db.Where("marker = ?", "system").First(&cfg)
var config types.SystemConfig
err := utils.JsonDecode(cfg.Config, &config)
err = utils.JsonDecode(cfg.Config, &config)
if err != nil || config.UserInitCalls <= 0 {
user.Calls = types.UserInitCalls
} else {