Browse Source

修改邮件轰炸问题

sandm 2 years ago
parent
commit
50c0530eec
1 changed files with 10 additions and 0 deletions
  1. 10 0
      app/Http/Controllers/Web/Person/MemberInfoController.php

+ 10 - 0
app/Http/Controllers/Web/Person/MemberInfoController.php

@@ -12,6 +12,7 @@ use App\Services\Person\MemberService;
 use App\Services\Person\ResumeService;
 use App\Validators\PersonValidatorRequest;
 use Illuminate\Http\Request;
+use Illuminate\Support\Facades\Cache;
 
 class MemberInfoController extends WebBaseController
 {
@@ -189,6 +190,15 @@ class MemberInfoController extends WebBaseController
         if (!$this->MemberService->findByEmail($id, $email)->isEmpty()) {
             return $this->sendErrorResponse('该邮箱已经认证!', '', 400);
         }
+        $redis = Cache::getRedis();
+        $value = $redis->get('user_email_'.$request->account);
+        if(!$value){
+            $value = 0;
+        }
+        if($value >= 5){
+            $redis->expire('user_email_'.$request->account,900);
+            return $this->sendErrorResponse("连续登录失败5次,请15分钟后再尝试!");
+        }
         $this->emailService->setAuthTag('personal')
             ->setCallback('App\Services\Person\MemberInfoService', 'sendAuthEmailHook', [$email, auth('web-member')->user()])
             ->sendAuthMail($email, EmailService::TEMPLATE_VALIDATION);