:art:配置文件的初始化
This commit is contained in:
58
component/captcha_store.go
Normal file
58
component/captcha_store.go
Normal file
@@ -0,0 +1,58 @@
|
||||
package component
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"os"
|
||||
"strings"
|
||||
"time"
|
||||
"wireguard-dashboard/client"
|
||||
"wireguard-dashboard/constant"
|
||||
)
|
||||
|
||||
type CaptchaStore struct{}
|
||||
|
||||
// Set
|
||||
// @description: 验证码放入指定存储
|
||||
// @receiver CaptchaStore
|
||||
// @param id
|
||||
// @param value
|
||||
// @return error
|
||||
func (CaptchaStore) Set(id string, value string) error {
|
||||
return client.Redis.Set(context.Background(), fmt.Sprintf("%s:%s", constant.Captcha, id), value, 2*time.Minute).Err()
|
||||
}
|
||||
|
||||
// Get
|
||||
// @description: 获取验证码信息
|
||||
// @receiver CaptchaStore
|
||||
// @param id
|
||||
// @param clear
|
||||
// @return string
|
||||
func (CaptchaStore) Get(id string, clear bool) string {
|
||||
val, err := client.Redis.Get(context.Background(), fmt.Sprintf("%s:%s", constant.Captcha, id)).Result()
|
||||
if err != nil {
|
||||
return ""
|
||||
}
|
||||
|
||||
if clear {
|
||||
client.Redis.Del(context.Background(), fmt.Sprintf("%s:%s", constant.Captcha, id))
|
||||
return val
|
||||
}
|
||||
|
||||
return val
|
||||
}
|
||||
|
||||
// Verify
|
||||
// @description: 校验
|
||||
// @receiver CaptchaStore
|
||||
// @param id
|
||||
// @param answer
|
||||
// @param clear
|
||||
// @return bool
|
||||
func (c CaptchaStore) Verify(id, answer string, clear bool) bool {
|
||||
if os.Getenv("GIN_MODE") != "release" {
|
||||
return true
|
||||
}
|
||||
storeAnswer := c.Get(id, clear)
|
||||
return strings.ToUpper(answer) == strings.ToUpper(storeAnswer)
|
||||
}
|
||||
Reference in New Issue
Block a user