From ff22480d8931c28600b24ea004db08778aa687ab Mon Sep 17 00:00:00 2001 From: RockYang Date: Sun, 7 Jan 2024 17:31:26 +0800 Subject: [PATCH] opt: add support to disable code verify --- api/handler/user_handler.go | 19 ++++++++++++------- web/src/views/Register.vue | 19 +++---------------- 2 files changed, 15 insertions(+), 23 deletions(-) diff --git a/api/handler/user_handler.go b/api/handler/user_handler.go index ba7e260e..2a7ba461 100644 --- a/api/handler/user_handler.go +++ b/api/handler/user_handler.go @@ -8,11 +8,12 @@ import ( "chatplus/utils" "chatplus/utils/resp" "fmt" - "github.com/go-redis/redis/v8" - "github.com/golang-jwt/jwt/v5" "strings" "time" + "github.com/go-redis/redis/v8" + "github.com/golang-jwt/jwt/v5" + "github.com/gin-gonic/gin" "github.com/lionsoul2014/ip2region/binding/golang/xdb" "gorm.io/gorm" @@ -55,11 +56,15 @@ func (h *UserHandler) Register(c *gin.Context) { } // 检查验证码 - key := CodeStorePrefix + data.Username - code, err := h.redis.Get(c, key).Result() - if err != nil || code != data.Code { - resp.ERROR(c, "验证码错误") - return + var key string + if utils.ContainsStr(h.App.SysConfig.RegisterWays, "email") || + utils.ContainsStr(h.App.SysConfig.RegisterWays, "mobile") { + key = CodeStorePrefix + data.Username + code, err := h.redis.Get(c, key).Result() + if err != nil || code != data.Code { + resp.ERROR(c, "验证码错误") + return + } } // 验证邀请码 diff --git a/web/src/views/Register.vue b/web/src/views/Register.vue index 74fd5b33..3b9d94af 100644 --- a/web/src/views/Register.vue +++ b/web/src/views/Register.vue @@ -49,7 +49,7 @@ -
+
{ ways.push("邮箱地址") } placeholder.value += ways.join("/") - if (ways.length === 0) { - enableRegister.value = false - } } }).catch(e => { ElMessage.error("获取系统配置失败:" + e.message) @@ -173,15 +169,6 @@ const register = function () { return ElMessage.error('请输入用户名'); } - if (!enableMobile.value && !validateEmail(formData.value.username)) { - return ElMessage.error('请输入合法的邮箱地址'); - } - if (!enableEmail.value && !validateMobile(formData.value.username)) { - return ElMessage.error('请输入合法的手机号'); - } - if (!validateMobile(formData.value.username) && !validateEmail(formData.value.username)) { - return ElMessage.error('请输入合法的手机号或者邮箱地址'); - } if (formData.value.password.length < 8) { return ElMessage.error('密码的长度为8-16个字符'); } @@ -189,8 +176,8 @@ const register = function () { return ElMessage.error('两次输入密码不一致'); } - if (formData.value.code === '') { - return ElMessage.error('请输入短信验证码'); + if ((enableEmail.value || enableMobile.value) && formData.value.code === '') { + return ElMessage.error('请输入验证码'); } httpPost('/api/user/register', formData.value).then((res) => { setUserToken(res.data)