Sfoglia il codice sorgente

更新密码正则提示

sandm 3 anni fa
parent
commit
a2a6b0bb94

+ 14 - 1
app/Http/Controllers/Web/Auth/LoginController.php

@@ -160,7 +160,20 @@ class LoginController extends WebBaseController
             $data['is_need_geetest']=$this->geetestService->isNeedGeetest(
                 config('aix.system.site_safety.site_vo_code.members_login')
             );
-            return $this->sendErrorResponse("账号或密码错误", $data);
+            $redis = Cache::getRedis();
+            $value = $redis->get('user_'.$request->account);
+            //dd($value);
+            if(!$value){
+                $value = 0;
+            }
+            if($value >= 5){
+                $redis->expire('user_'.$request->account,900);
+                return $this->sendErrorResponse("连续登录失败5次,请15分钟后再尝试!", $data);
+            }
+            $redis->set('user_'.$request->account,++$value);
+
+            return $this->sendErrorResponse("账号或密码错误或密码过期,请使用找回密码功能", $data);
+            //return $this->sendErrorResponse("账号或密码错误", $data);
         }
         if ($company->user_status == 0) {
             Auth::guard('web-company')->logout();

+ 21 - 0
app/Services/Auth/AuthService.php

@@ -114,6 +114,10 @@ class AuthService
         if (!$user) {
             return false;
         }
+
+        if(!$this->checkPwdLog($user)){
+            return false;
+        }
         $this->login($user, $isAutoLogin);
         return $user;
     }
@@ -295,11 +299,28 @@ class AuthService
 
     public function checkPwdLog($user)
     {
+        $reglog = $this->memberLogRepository->getMemberLog(
+            $user->id,
+            $user->utype,
+            1000
+        );
+        $regdata = $reglog->toArray()['data'];
+        if(count($regdata) >= 1){
+            $log = array_shift($regdata);
+            $reg_time = strtotime($log['created_at']);
+        }else{
+            $reg_time = 0;
+        }
+        if((time()-$reg_time)>7776000){
+            return false;
+        }
+
         $pwdLog = $this->memberLogRepository->getMemberLog(
             $user->id,
             $user->utype,
             2045
         );
+
         $data = $pwdLog->toArray()['data'];
         if(count($data) >= 1){
             $log = array_shift($data);

+ 8 - 4
app/Validators/AuthValidatorRequest.php

@@ -12,11 +12,13 @@ class AuthValidatorRequest extends BaseValidatorRequest
         return [
            'rules'=>[
                'account'=>['required'],
-               'password'=>['required']
+               'password'=>['required','min:8','regex:/^(?=.*[a-z])(?=.*\d)[^]{8,}$/']
            ],
            'messages'=>[
                'account.required'=>'请输入用户名',
-               'password.required'=>'请输入密码'
+               'password.required'=>'请输入密码',
+               'password.min'=>'密码最低8位',
+               'password.regex'=>'密码应包含字母与数字两种字符'
            ]
         ];
     }
@@ -40,11 +42,13 @@ class AuthValidatorRequest extends BaseValidatorRequest
         return [
             'rules'=>[
                 'company_account'=>['required'],
-                'company_password'=>['required']
+                'company_password'=>['required','min:8','regex:/^(?=.*[a-z])(?=.*\d)[^]{8,}$/']
             ],
             'messages'=>[
                 'account.required'=>'请输入用户名',
-                'password.required'=>'请输入密码'
+                'password.required'=>'请输入密码',
+                'password.min'=>'密码最低8位',
+                'password.regex'=>'密码应包含字母与数字两种字符'
             ]
         ];
     }