40 lines
999 B
Go
40 lines
999 B
Go
|
|
package member
|
||
|
|
|
||
|
|
import "strings"
|
||
|
|
|
||
|
|
// RedisKey is the member module key prefix.
|
||
|
|
type RedisKey string
|
||
|
|
|
||
|
|
const (
|
||
|
|
OTPChallengeRedisKey RedisKey = "member:otp:challenge"
|
||
|
|
VerifyRateRedisKey RedisKey = "member:verify:rate"
|
||
|
|
VerifyDailyRedisKey RedisKey = "member:verify:daily"
|
||
|
|
)
|
||
|
|
|
||
|
|
func (key RedisKey) With(parts ...string) RedisKey {
|
||
|
|
if len(parts) == 0 {
|
||
|
|
return key
|
||
|
|
}
|
||
|
|
return RedisKey(string(key) + ":" + strings.Join(parts, ":"))
|
||
|
|
}
|
||
|
|
|
||
|
|
func (key RedisKey) String() string {
|
||
|
|
return string(key)
|
||
|
|
}
|
||
|
|
|
||
|
|
func GetOTPChallengeRedisKey(challengeID string) string {
|
||
|
|
return OTPChallengeRedisKey.With(challengeID).String()
|
||
|
|
}
|
||
|
|
|
||
|
|
func GetOTPAttemptsRedisKey(challengeID string) string {
|
||
|
|
return OTPChallengeRedisKey.With(challengeID, "attempts").String()
|
||
|
|
}
|
||
|
|
|
||
|
|
func GetVerifyRateRedisKey(tenantID, uid, kind string) string {
|
||
|
|
return VerifyRateRedisKey.With(tenantID, uid, kind).String()
|
||
|
|
}
|
||
|
|
|
||
|
|
func GetVerifyDailyRedisKey(tenantID, uid, kind string) string {
|
||
|
|
return VerifyDailyRedisKey.With(tenantID, uid, kind).String()
|
||
|
|
}
|