diff --git a/internal/logic/auth/emailLoginLogic.go b/internal/logic/auth/emailLoginLogic.go index 60eaa7d..70a3395 100644 --- a/internal/logic/auth/emailLoginLogic.go +++ b/internal/logic/auth/emailLoginLogic.go @@ -73,7 +73,7 @@ func (l *EmailLoginLogic) EmailLogin(req *types.EmailLoginRequest) (resp *types. if err := json.Unmarshal([]byte(value), &payload); err != nil { 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 cacheKeyUsed = cacheKey break diff --git a/internal/logic/auth/resetPasswordLogic.go b/internal/logic/auth/resetPasswordLogic.go index 86df816..d5987b3 100644 --- a/internal/logic/auth/resetPasswordLogic.go +++ b/internal/logic/auth/resetPasswordLogic.go @@ -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)) return nil, errors.Wrapf(xerr.NewErrCode(xerr.VerifyCodeError), "Verification code error") } - if payload.Code != req.Code || time.Now().Unix()-payload.LastAt > 600 { - 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)) - return nil, errors.Wrapf(xerr.NewErrCode(xerr.VerifyCodeError), "Verification code error or expired") + if payload.Code != req.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") + } + // 校验有效期(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) } diff --git a/internal/logic/auth/userRegisterLogic.go b/internal/logic/auth/userRegisterLogic.go index edcfbcb..1601bc2 100644 --- a/internal/logic/auth/userRegisterLogic.go +++ b/internal/logic/auth/userRegisterLogic.go @@ -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)) return nil, errors.Wrapf(xerr.NewErrCode(xerr.VerifyCodeError), "code error") } - if payload.Code != req.Code || time.Now().Unix()-payload.LastAt > 600 { - return nil, errors.Wrapf(xerr.NewErrCode(xerr.VerifyCodeError), "code error or expired") + if payload.Code != req.Code { + 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) } diff --git a/internal/logic/common/sendEmailCodeLogic.go b/internal/logic/common/sendEmailCodeLogic.go index 345ed7a..f1e6b52 100644 --- a/internal/logic/common/sendEmailCodeLogic.go +++ b/internal/logic/common/sendEmailCodeLogic.go @@ -91,7 +91,7 @@ func (l *SendEmailCodeLogic) SendEmailCode(req *types.SendCodeRequest) (resp *ty "Type": req.Type, "SiteLogo": l.svcCtx.Config.Site.SiteLogo, "SiteName": l.svcCtx.Config.Site.SiteName, - "Expire": 5, + "Expire": 15, "Code": code, } // Save to Redis @@ -101,7 +101,7 @@ func (l *SendEmailCodeLogic) SendEmailCode(req *types.SendCodeRequest) (resp *ty } // Marshal the 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)) return nil, errors.Wrap(xerr.NewErrCode(xerr.ERROR), "Failed to set verification code") } diff --git a/internal/logic/public/user/bindEmailWithVerificationLogic.go b/internal/logic/public/user/bindEmailWithVerificationLogic.go index 1b492f3..4fa66d2 100644 --- a/internal/logic/public/user/bindEmailWithVerificationLogic.go +++ b/internal/logic/public/user/bindEmailWithVerificationLogic.go @@ -66,8 +66,8 @@ func (l *BindEmailWithVerificationLogic) BindEmailWithVerification(req *types.Bi if err := json.Unmarshal([]byte(value), &p); err != nil { continue } - // 校验验证码及有效期(10分钟) - if p.Code == req.Code && time.Now().Unix()-p.LastAt <= 600 { + // 校验验证码及有效期(15分钟) + if p.Code == req.Code && time.Now().Unix()-p.LastAt <= 900 { _ = l.svcCtx.Redis.Del(l.ctx, cacheKey).Err() verified = true break diff --git a/internal/logic/public/user/verifyEmailLogic.go b/internal/logic/public/user/verifyEmailLogic.go index 27362d6..82cb060 100644 --- a/internal/logic/public/user/verifyEmailLogic.go +++ b/internal/logic/public/user/verifyEmailLogic.go @@ -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)) return errors.Wrapf(xerr.NewErrCode(xerr.VerifyCodeError), "code error") } - if payload.Code != req.Code || time.Now().Unix()-payload.LastAt > 600 { - return errors.Wrapf(xerr.NewErrCode(xerr.VerifyCodeError), "code error or expired") + if payload.Code != req.Code { // 校验有效期(15分钟) + 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) diff --git a/server b/server index 8251e23..81b71b5 100755 Binary files a/server and b/server differ