feat: 添加是否校验验证码功能。
This commit is contained in:
parent
0d59d80140
commit
808c640cc0
@ -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
|
@ -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 验证
|
||||
|
@ -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"`
|
||||
}
|
||||
|
40
pkg/settings/get_content.go
Normal file
40
pkg/settings/get_content.go
Normal 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
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user