Prechádzať zdrojové kódy

增加密码的验证格式

frank 3 rokov pred
rodič
commit
c7166c0d9d
1 zmenil súbory, kde vykonal 14 pridanie a 0 odobranie
  1. 14 0
      backendApi/modules/v1/models/AdminForm.php

+ 14 - 0
backendApi/modules/v1/models/AdminForm.php

@@ -133,6 +133,20 @@ class AdminForm extends Model
 
         // 给密码进行加密 ,如果需要添加验证密码安全验证时 ,可以在这个地方加
         if($this->password){
+            if ($this->scenario == 'changePassword' || $this->scenario == 'noLoginModifyPassword'){
+                if (strlen($this->password) < 8){
+                    $this->addError($this->scenario, '登录密码不能小于8位');
+                    return null;
+                }
+//               $symbol = '!#$%^&*';
+               $symbol = '`~!@#$^&*()=|{}\'\":;\',\\[\\].<>\/?~!@#¥……&*()——|{}【】‘;:”。,、?';
+               $passwordRules = '/^(?![\d]+$)(?![a-z]+$)(?![A-Z]+$)(?!['.$symbol.']+$)[\da-zA-z'.$symbol.']{8,}$/';
+               $verificationResults = preg_match($passwordRules,$this->password);
+               if (!$verificationResults){
+                   $this->addError($this->scenario, '登录密码中需要包含数字、大写字母、小写字母、特殊字符至少两种');
+                   return null;
+               }
+            }
             $model->PASSWORD_HASH = \Yii::$app->security->generatePasswordHash($this->password);
         }