🏗️ microservice fabric splitting

This commit is contained in:
2024-12-24 00:38:41 +08:00
parent 462e811742
commit 89d64336f5
311 changed files with 18384 additions and 2428 deletions

View File

@@ -0,0 +1,47 @@
package verify
import (
"context"
"encoding/json"
"fmt"
"schisandra-album-cloud-microservices/common/constant"
"strconv"
"strings"
"github.com/redis/go-redis/v9"
"github.com/wenlng/go-captcha/v2/click"
)
// VerifyBasicTextCaptcha verify basic text captcha
func VerifyBasicTextCaptcha(dots string, key string, redis *redis.Client, ctx context.Context) bool {
cacheDataByte, err := redis.Get(ctx, constant.UserCaptchaPrefix+key).Bytes()
if len(cacheDataByte) == 0 || err != nil {
return false
}
src := strings.Split(dots, ",")
var dct map[int]*click.Dot
if err := json.Unmarshal(cacheDataByte, &dct); err != nil {
return false
}
chkRet := false
if (len(dct) * 2) == len(src) {
for i := 0; i < len(dct); i++ {
dot := dct[i]
j := i * 2
k := i*2 + 1
sx, _ := strconv.ParseFloat(fmt.Sprintf("%v", src[j]), 64)
sy, _ := strconv.ParseFloat(fmt.Sprintf("%v", src[k]), 64)
chkRet = click.CheckPoint(int64(sx), int64(sy), int64(dot.X), int64(dot.Y), int64(dot.Width), int64(dot.Height), 0)
if !chkRet {
break
}
}
}
if chkRet {
return true
}
return false
}

View File

@@ -0,0 +1,34 @@
package verify
import (
"context"
"encoding/json"
"fmt"
"schisandra-album-cloud-microservices/common/constant"
"strconv"
"github.com/redis/go-redis/v9"
"github.com/wenlng/go-captcha/v2/rotate"
)
// VerifyRotateCaptcha verify rotate captcha
func VerifyRotateCaptcha(context context.Context, redis *redis.Client, angle int64, key string) bool {
cacheDataByte := redis.Get(context, constant.UserCaptchaPrefix+key).Val()
if len(cacheDataByte) == 0 {
return false
}
var dct *rotate.Block
if err := json.Unmarshal([]byte(cacheDataByte), &dct); err != nil {
return false
}
sAngle, err := strconv.ParseFloat(fmt.Sprintf("%v", angle), 64)
if err != nil {
return false
}
chkRet := rotate.CheckAngle(int64(sAngle), int64(dct.Angle), 2)
if chkRet {
return true
}
return false
}

View File

@@ -0,0 +1,35 @@
package verify
import (
"context"
"encoding/json"
"fmt"
"schisandra-album-cloud-microservices/common/constant"
"strconv"
"github.com/redis/go-redis/v9"
"github.com/wenlng/go-captcha/v2/slide"
)
// VerifySlideCaptcha verify slide captcha
func VerifySlideCaptcha(context context.Context, redis *redis.Client, point []int64, key string) bool {
cacheDataByte := redis.Get(context, constant.UserCaptchaPrefix+key).Val()
if len(cacheDataByte) == 0 {
return false
}
var dct *slide.Block
if err := json.Unmarshal([]byte(cacheDataByte), &dct); err != nil {
return false
}
chkRet := false
if 2 == len(point) {
sx, _ := strconv.ParseFloat(fmt.Sprintf("%v", point[0]), 64)
sy, _ := strconv.ParseFloat(fmt.Sprintf("%v", point[1]), 64)
chkRet = slide.CheckPoint(int64(sx), int64(sy), int64(dct.X), int64(dct.Y), 4)
}
if chkRet {
return true
}
return false
}