feat(user): 实现基础用户系统
- 实现用户手机验证码、密码登录功能,支持 JWT 认证 - 实现用户注册功能 - 实现jwt中获取用户信息
This commit is contained in:
@@ -5,6 +5,7 @@ import (
|
||||
"fmt"
|
||||
"github.com/go-playground/validator/v10"
|
||||
"regexp"
|
||||
"strings"
|
||||
)
|
||||
|
||||
var validate *validator.Validate
|
||||
@@ -43,6 +44,16 @@ func init() {
|
||||
if err := validate.RegisterValidation("mobileType", validMobileType); err != nil {
|
||||
panic(fmt.Sprintf("注册 mobileType 验证器时发生错误: %v", err))
|
||||
}
|
||||
if err := validate.RegisterValidation("password", validatePassword); err != nil {
|
||||
panic(fmt.Sprintf("注册 password 验证器时发生错误: %v", err))
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// 弱口令列表
|
||||
var weakPasswords = []string{
|
||||
"12345678", "password", "123456789", "qwerty", "123456", "letmein",
|
||||
"1234567", "welcome", "abc123", "password1", "1234", "111111", "admin",
|
||||
}
|
||||
|
||||
// Validate 校验参数逻辑
|
||||
@@ -127,3 +138,17 @@ func validMobileType(fl validator.FieldLevel) bool {
|
||||
|
||||
return validTypes[mobileType]
|
||||
}
|
||||
|
||||
// 自定义密码强度校验函数
|
||||
func validatePassword(fl validator.FieldLevel) bool {
|
||||
password := fl.Field().String()
|
||||
|
||||
// 检查密码是否在弱口令列表中
|
||||
for _, weakPwd := range weakPasswords {
|
||||
if strings.ToLower(password) == weakPwd {
|
||||
return false
|
||||
}
|
||||
}
|
||||
|
||||
return true
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user