diff --git a/docker-compose.yml b/docker-compose.yml deleted file mode 100644 index 4f45d0e..0000000 --- a/docker-compose.yml +++ /dev/null @@ -1,61 +0,0 @@ -version: "3" -services: - db: - hostname: mysql - container_name: ferry_mysql - image: mysql:5.7 - restart: unless-stopped - environment: - - TZ=Asia/Shanghai - - MYSQL_ROOT_PASSWORD=123456 - - MYSQL_DATABASE=ferry - volumes: - - ./data/mysql/data:/var/lib/mysql # 映射数据库保存目录到宿主机,防止数据丢失 - command: - [ - "--character-set-server=utf8mb4", - "--collation-server=utf8mb4_unicode_ci", - ] - - redis: - hostname: redis - image: redis:6 - container_name: ferry_redis - restart: unless-stopped - environment: - - TZ=Asia/Shanghai - volumes: - - ./data/redis/data:/var/lib/redis/data - - ferry_backend: - hostname: ferry_backend - image: ferry:latest - container_name: ferry_backend - build: . - depends_on: - - db - - redis - links: - - db:ferry_mysql - - redis:ferry_redis - ports: - - 8002:8002 - volumes: - - ./data/config:/opt/ferry/config - - ./data/logs:/opt/ferry/logs - environment: - - TZ=Asia/Shanghai - restart: unless-stopped - - ferry_web: - hostname: ferry_web - container_name: ferry_web - image: ferry_web:latest - links: - - ferry_backend:ferry_backend - ports: - - 8001:8001 - environment: - - LISTEN_DOMAIN=fdevops.com - - TZ=Asia/Shanghai - restart: unless-stopped diff --git a/handler/auth.go b/handler/auth.go index b773fca..9252a84 100644 --- a/handler/auth.go +++ b/handler/auth.go @@ -7,6 +7,7 @@ import ( jwt "ferry/pkg/jwtauth" ldap1 "ferry/pkg/ldap" "ferry/pkg/logger" + "ferry/pkg/settings" "ferry/tools" "fmt" "net/http" @@ -66,6 +67,7 @@ func Authenticator(c *gin.Context) (interface{}, error) { authUserCount int addUserInfo system.SysUser ldapUserInfo *ldap.Entry + isVerifyCode interface{} ) ua := user_agent.New(c.Request.UserAgent()) @@ -91,12 +93,20 @@ func Authenticator(c *gin.Context) (interface{}, error) { } loginLog.Username = loginVal.Username - // 校验验证码 - if !store.Verify(loginVal.UUID, loginVal.Code, true) { - loginLog.Status = "1" - loginLog.Msg = "验证码错误" - _, _ = loginLog.Create() - return nil, jwt.ErrInvalidVerificationode + // 查询设置 is_verify_code + isVerifyCode, err = settings.GetContentByKey(1, "is_verify_code") + if err != nil { + return nil, errors.New("获取是否需要验证码校验失败") + } + + if isVerifyCode.(bool) { + // 校验验证码 + if !store.Verify(loginVal.UUID, loginVal.Code, true) { + loginLog.Status = "1" + loginLog.Msg = "验证码错误" + _, _ = loginLog.Create() + return nil, jwt.ErrInvalidVerificationode + } } // ldap 验证 diff --git a/models/system/login.go b/models/system/login.go index f799a01..a252c93 100644 --- a/models/system/login.go +++ b/models/system/login.go @@ -12,7 +12,7 @@ import ( type Login struct { Username string `form:"UserName" json:"username" binding:"required"` Password string `form:"Password" json:"password" binding:"required"` - Code string `form:"Code" json:"code" binding:"required"` + Code string `form:"Code" json:"code"` UUID string `form:"UUID" json:"uuid" binding:"required"` LoginType int `form:"LoginType" json:"loginType"` } diff --git a/pkg/settings/get_content.go b/pkg/settings/get_content.go new file mode 100644 index 0000000..2176231 --- /dev/null +++ b/pkg/settings/get_content.go @@ -0,0 +1,40 @@ +package settings + +import ( + "encoding/json" + "ferry/global/orm" + "ferry/models/system" +) + +func GetContent(classify int) (content map[string]interface{}, err error) { + var ( + settings system.Settings + ) + + err = orm.Eloquent.Where("classify = ?", classify).Find(&settings).Error + if err != nil { + return + } + + err = json.Unmarshal(settings.Content, &content) + if err != nil { + return + } + + return +} + +func GetContentByKey(classify int, key string) (value interface{}, err error) { + var ( + content map[string]interface{} + ) + + content, err = GetContent(classify) + if err != nil { + return + } + + value = content[key] + + return +}