feat: 添加是否需要校验验证码的功能。
feat: 添加是否需要校验验证码的功能。
This commit is contained in:
commit
7402c1374d
@ -107,7 +107,7 @@ QQ群 3:767524537
|
|||||||
|
|
||||||
[兰玉磊的技术博客](https://www.fdevops.com/)
|
[兰玉磊的技术博客](https://www.fdevops.com/)
|
||||||
|
|
||||||
###个人微信,添加好友请描述地区、公司及名字,例如:北京-国美-xxx。
|
### 个人微信,添加好友请描述地区、公司及名字,例如:北京-国美-xxx。
|
||||||
|
|
||||||
微信号:fdevops
|
微信号:fdevops
|
||||||
|
|
||||||
|
@ -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"
|
jwt "ferry/pkg/jwtauth"
|
||||||
ldap1 "ferry/pkg/ldap"
|
ldap1 "ferry/pkg/ldap"
|
||||||
"ferry/pkg/logger"
|
"ferry/pkg/logger"
|
||||||
|
"ferry/pkg/settings"
|
||||||
"ferry/tools"
|
"ferry/tools"
|
||||||
"fmt"
|
"fmt"
|
||||||
"net/http"
|
"net/http"
|
||||||
@ -66,6 +67,7 @@ func Authenticator(c *gin.Context) (interface{}, error) {
|
|||||||
authUserCount int
|
authUserCount int
|
||||||
addUserInfo system.SysUser
|
addUserInfo system.SysUser
|
||||||
ldapUserInfo *ldap.Entry
|
ldapUserInfo *ldap.Entry
|
||||||
|
isVerifyCode interface{}
|
||||||
)
|
)
|
||||||
|
|
||||||
ua := user_agent.New(c.Request.UserAgent())
|
ua := user_agent.New(c.Request.UserAgent())
|
||||||
@ -91,12 +93,20 @@ func Authenticator(c *gin.Context) (interface{}, error) {
|
|||||||
}
|
}
|
||||||
loginLog.Username = loginVal.Username
|
loginLog.Username = loginVal.Username
|
||||||
|
|
||||||
// 校验验证码
|
// 查询设置 is_verify_code
|
||||||
if !store.Verify(loginVal.UUID, loginVal.Code, true) {
|
isVerifyCode, err = settings.GetContentByKey(1, "is_verify_code")
|
||||||
loginLog.Status = "1"
|
if err != nil {
|
||||||
loginLog.Msg = "验证码错误"
|
return nil, errors.New("获取是否需要验证码校验失败")
|
||||||
_, _ = loginLog.Create()
|
}
|
||||||
return nil, jwt.ErrInvalidVerificationode
|
|
||||||
|
if isVerifyCode.(bool) {
|
||||||
|
// 校验验证码
|
||||||
|
if !store.Verify(loginVal.UUID, loginVal.Code, true) {
|
||||||
|
loginLog.Status = "1"
|
||||||
|
loginLog.Msg = "验证码错误"
|
||||||
|
_, _ = loginLog.Create()
|
||||||
|
return nil, jwt.ErrInvalidVerificationode
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// ldap 验证
|
// ldap 验证
|
||||||
|
@ -12,7 +12,7 @@ import (
|
|||||||
type Login struct {
|
type Login struct {
|
||||||
Username string `form:"UserName" json:"username" binding:"required"`
|
Username string `form:"UserName" json:"username" binding:"required"`
|
||||||
Password string `form:"Password" json:"password" 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"`
|
UUID string `form:"UUID" json:"uuid" binding:"required"`
|
||||||
LoginType int `form:"LoginType" json:"loginType"`
|
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