Unverified Commit 7402c137 authored by lanyulei's avatar lanyulei Committed by GitHub
Browse files

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

feat: 添加是否需要校验验证码的功能。
parents 9ab37a3b 808c640c
Showing with 58 additions and 69 deletions
+58 -69
......@@ -107,7 +107,7 @@ QQ群 3:767524537
[兰玉磊的技术博客](https://www.fdevops.com/)
###个人微信,添加好友请描述地区、公司及名字,例如:北京-国美-xxx。
### 个人微信,添加好友请描述地区、公司及名字,例如:北京-国美-xxx。
微信号:fdevops
......
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"`
}
......
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
}
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment