feat: 添加是否校验验证码功能。

This commit is contained in:
lanyulei 2022-01-08 18:48:00 +08:00
parent 0d59d80140
commit 808c640cc0
4 changed files with 57 additions and 68 deletions

View File

@ -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

View File

@ -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 验证

View File

@ -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"`
}

View File

@ -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
}