opt: add support to disable code verify

This commit is contained in:
RockYang 2024-01-07 17:31:26 +08:00
parent 8ec85e2829
commit ff22480d89
2 changed files with 15 additions and 23 deletions

View File

@ -8,11 +8,12 @@ import (
"chatplus/utils" "chatplus/utils"
"chatplus/utils/resp" "chatplus/utils/resp"
"fmt" "fmt"
"github.com/go-redis/redis/v8"
"github.com/golang-jwt/jwt/v5"
"strings" "strings"
"time" "time"
"github.com/go-redis/redis/v8"
"github.com/golang-jwt/jwt/v5"
"github.com/gin-gonic/gin" "github.com/gin-gonic/gin"
"github.com/lionsoul2014/ip2region/binding/golang/xdb" "github.com/lionsoul2014/ip2region/binding/golang/xdb"
"gorm.io/gorm" "gorm.io/gorm"
@ -55,12 +56,16 @@ func (h *UserHandler) Register(c *gin.Context) {
} }
// 检查验证码 // 检查验证码
key := CodeStorePrefix + data.Username 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() code, err := h.redis.Get(c, key).Result()
if err != nil || code != data.Code { if err != nil || code != data.Code {
resp.ERROR(c, "验证码错误") resp.ERROR(c, "验证码错误")
return return
} }
}
// 验证邀请码 // 验证邀请码
inviteCode := model.InviteCode{} inviteCode := model.InviteCode{}

View File

@ -49,7 +49,7 @@
</el-input> </el-input>
</div> </div>
<div class="block"> <div class="block" v-if="enableMobile || enableEmail">
<el-row :gutter="10"> <el-row :gutter="10">
<el-col :span="12"> <el-col :span="12">
<el-input placeholder="验证码" <el-input placeholder="验证码"
@ -122,7 +122,6 @@ import {ElMessage} from "element-plus";
import {useRouter} from "vue-router"; import {useRouter} from "vue-router";
import FooterBar from "@/components/FooterBar.vue"; import FooterBar from "@/components/FooterBar.vue";
import SendMsg from "@/components/SendMsg.vue"; import SendMsg from "@/components/SendMsg.vue";
import {validateEmail, validateMobile} from "@/utils/validate";
import {arrayContains} from "@/utils/libs"; import {arrayContains} from "@/utils/libs";
import {setUserToken} from "@/store/session"; import {setUserToken} from "@/store/session";
@ -155,9 +154,6 @@ httpGet("/api/admin/config/get?key=system").then(res => {
ways.push("邮箱地址") ways.push("邮箱地址")
} }
placeholder.value += ways.join("/") placeholder.value += ways.join("/")
if (ways.length === 0) {
enableRegister.value = false
}
} }
}).catch(e => { }).catch(e => {
ElMessage.error("获取系统配置失败:" + e.message) ElMessage.error("获取系统配置失败:" + e.message)
@ -173,15 +169,6 @@ const register = function () {
return ElMessage.error('请输入用户名'); 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) { if (formData.value.password.length < 8) {
return ElMessage.error('密码的长度为8-16个字符'); return ElMessage.error('密码的长度为8-16个字符');
} }
@ -189,8 +176,8 @@ const register = function () {
return ElMessage.error('两次输入密码不一致'); return ElMessage.error('两次输入密码不一致');
} }
if (formData.value.code === '') { if ((enableEmail.value || enableMobile.value) && formData.value.code === '') {
return ElMessage.error('请输入短信验证码'); return ElMessage.error('请输入验证码');
} }
httpPost('/api/user/register', formData.value).then((res) => { httpPost('/api/user/register', formData.value).then((res) => {
setUserToken(res.data) setUserToken(res.data)