You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
package captcha
import ( "gin-vue-admin/global" "time"
"github.com/mojocn/base64Captcha" "go.uber.org/zap" )
func NewDefaultRedisStore() base64Captcha.Store { return &RedisStore{ Expiration: time.Second * 180, PreKey: "CAPTCHA_", } }
type RedisStore struct { Expiration time.Duration PreKey string }
func (rs *RedisStore) Set(id string, value string) { err := global.GVA_REDIS.Set(rs.PreKey+id, value, rs.Expiration).Err() if err != nil { global.GVA_LOG.Error("RedisStoreSetError!", zap.Error(err)) } }
func (rs *RedisStore) Get(key string, clear bool) string { val, err := global.GVA_REDIS.Get(key).Result() if err != nil { global.GVA_LOG.Error("RedisStoreGetError!", zap.Error(err)) return "" } if clear { err := global.GVA_REDIS.Del(key).Err() if err != nil { global.GVA_LOG.Error("RedisStoreClearError!", zap.Error(err)) return "" } } return val }
func (rs *RedisStore) Verify(id, answer string, clear bool) bool { key := rs.PreKey + id v := rs.Get(key, clear) return v == answer }
|