15ttl
All checks were successful
Build docker and publish / build (20.15.1) (push) Successful in 6m0s

This commit is contained in:
shanshanzhong 2026-01-09 00:43:52 -08:00
parent 7b33ab6e2a
commit d45f4417ed
7 changed files with 24 additions and 12 deletions

View File

@ -73,7 +73,7 @@ func (l *EmailLoginLogic) EmailLogin(req *types.EmailLoginRequest) (resp *types.
if err := json.Unmarshal([]byte(value), &payload); err != nil { if err := json.Unmarshal([]byte(value), &payload); err != nil {
continue continue
} }
if payload.Code == req.Code && time.Now().Unix()-payload.LastAt <= 600 { if payload.Code == req.Code && time.Now().Unix()-payload.LastAt <= 900 {
verified = true verified = true
cacheKeyUsed = cacheKey cacheKeyUsed = cacheKey
break break

View File

@ -79,9 +79,14 @@ func (l *ResetPasswordLogic) ResetPassword(req *types.ResetPasswordRequest) (res
l.Errorw("Unmarshal errors", logger.Field("cacheKey", cacheKey), logger.Field("error", err.Error()), logger.Field("value", value)) l.Errorw("Unmarshal errors", logger.Field("cacheKey", cacheKey), logger.Field("error", err.Error()), logger.Field("value", value))
return nil, errors.Wrapf(xerr.NewErrCode(xerr.VerifyCodeError), "Verification code error") return nil, errors.Wrapf(xerr.NewErrCode(xerr.VerifyCodeError), "Verification code error")
} }
if payload.Code != req.Code || time.Now().Unix()-payload.LastAt > 600 { if payload.Code != req.Code {
l.Errorw("Verification code error", logger.Field("cacheKey", cacheKey), logger.Field("error", "Verification code error or expired"), logger.Field("reqCode", req.Code), logger.Field("payloadCode", payload.Code)) l.Errorw("Verification code error", logger.Field("cacheKey", cacheKey), logger.Field("error", "Verification code error"), logger.Field("reqCode", req.Code), logger.Field("payloadCode", payload.Code))
return nil, errors.Wrapf(xerr.NewErrCode(xerr.VerifyCodeError), "Verification code error or expired") return nil, errors.Wrapf(xerr.NewErrCode(xerr.VerifyCodeError), "Verification code error")
}
// 校验有效期15分钟
if time.Now().Unix()-payload.LastAt > 900 {
l.Errorw("Verification code expired", logger.Field("cacheKey", cacheKey), logger.Field("error", "Verification code expired"), logger.Field("reqCode", req.Code), logger.Field("payloadCode", payload.Code))
return nil, errors.Wrapf(xerr.NewErrCode(xerr.VerifyCodeError), "code expired")
} }
l.svcCtx.Redis.Del(l.ctx, cacheKey) l.svcCtx.Redis.Del(l.ctx, cacheKey)
} }

View File

@ -74,8 +74,12 @@ func (l *UserRegisterLogic) UserRegister(req *types.UserRegisterRequest) (resp *
l.Errorw("Unmarshal Error", logger.Field("error", err.Error()), logger.Field("value", value)) l.Errorw("Unmarshal Error", logger.Field("error", err.Error()), logger.Field("value", value))
return nil, errors.Wrapf(xerr.NewErrCode(xerr.VerifyCodeError), "code error") return nil, errors.Wrapf(xerr.NewErrCode(xerr.VerifyCodeError), "code error")
} }
if payload.Code != req.Code || time.Now().Unix()-payload.LastAt > 600 { if payload.Code != req.Code {
return nil, errors.Wrapf(xerr.NewErrCode(xerr.VerifyCodeError), "code error or expired") return nil, errors.Wrapf(xerr.NewErrCode(xerr.VerifyCodeError), "code error")
}
// 校验有效期15分钟
if time.Now().Unix()-payload.LastAt > 900 {
return nil, errors.Wrapf(xerr.NewErrCode(xerr.VerifyCodeError), "code expired")
} }
l.svcCtx.Redis.Del(l.ctx, cacheKey) l.svcCtx.Redis.Del(l.ctx, cacheKey)
} }

View File

@ -91,7 +91,7 @@ func (l *SendEmailCodeLogic) SendEmailCode(req *types.SendCodeRequest) (resp *ty
"Type": req.Type, "Type": req.Type,
"SiteLogo": l.svcCtx.Config.Site.SiteLogo, "SiteLogo": l.svcCtx.Config.Site.SiteLogo,
"SiteName": l.svcCtx.Config.Site.SiteName, "SiteName": l.svcCtx.Config.Site.SiteName,
"Expire": 5, "Expire": 15,
"Code": code, "Code": code,
} }
// Save to Redis // Save to Redis
@ -101,7 +101,7 @@ func (l *SendEmailCodeLogic) SendEmailCode(req *types.SendCodeRequest) (resp *ty
} }
// Marshal the payload // Marshal the payload
val, _ := json.Marshal(payload) val, _ := json.Marshal(payload)
if err = l.svcCtx.Redis.Set(l.ctx, cacheKey, string(val), time.Minute*10).Err(); err != nil { if err = l.svcCtx.Redis.Set(l.ctx, cacheKey, string(val), time.Minute*15).Err(); err != nil {
l.Errorw("[SendEmailCode]: Redis Error", logger.Field("error", err.Error()), logger.Field("cacheKey", cacheKey)) l.Errorw("[SendEmailCode]: Redis Error", logger.Field("error", err.Error()), logger.Field("cacheKey", cacheKey))
return nil, errors.Wrap(xerr.NewErrCode(xerr.ERROR), "Failed to set verification code") return nil, errors.Wrap(xerr.NewErrCode(xerr.ERROR), "Failed to set verification code")
} }

View File

@ -66,8 +66,8 @@ func (l *BindEmailWithVerificationLogic) BindEmailWithVerification(req *types.Bi
if err := json.Unmarshal([]byte(value), &p); err != nil { if err := json.Unmarshal([]byte(value), &p); err != nil {
continue continue
} }
// 校验验证码及有效期10分钟) // 校验验证码及有效期15分钟)
if p.Code == req.Code && time.Now().Unix()-p.LastAt <= 600 { if p.Code == req.Code && time.Now().Unix()-p.LastAt <= 900 {
_ = l.svcCtx.Redis.Del(l.ctx, cacheKey).Err() _ = l.svcCtx.Redis.Del(l.ctx, cacheKey).Err()
verified = true verified = true
break break

View File

@ -50,8 +50,11 @@ func (l *VerifyEmailLogic) VerifyEmail(req *types.VerifyEmailRequest) error {
l.Errorw("Redis Error", logger.Field("error", err.Error()), logger.Field("cacheKey", cacheKey)) l.Errorw("Redis Error", logger.Field("error", err.Error()), logger.Field("cacheKey", cacheKey))
return errors.Wrapf(xerr.NewErrCode(xerr.VerifyCodeError), "code error") return errors.Wrapf(xerr.NewErrCode(xerr.VerifyCodeError), "code error")
} }
if payload.Code != req.Code || time.Now().Unix()-payload.LastAt > 600 { if payload.Code != req.Code { // 校验有效期15分钟
return errors.Wrapf(xerr.NewErrCode(xerr.VerifyCodeError), "code error or expired") return errors.Wrapf(xerr.NewErrCode(xerr.VerifyCodeError), "code error")
}
if time.Now().Unix()-payload.LastAt > 900 {
return errors.Wrapf(xerr.NewErrCode(xerr.VerifyCodeError), "code expired")
} }
l.svcCtx.Redis.Del(l.ctx, cacheKey) l.svcCtx.Redis.Del(l.ctx, cacheKey)

BIN
server

Binary file not shown.