|
|
@@ -311,6 +311,56 @@ class User extends \common\components\ActiveRecord
|
|
|
return password_verify($password, $this->PASSWORD_HASH);
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * verificationPassword
|
|
|
+ *
|
|
|
+ * @param string $password password to validate
|
|
|
+ * @return bool if password provided is valid for current user
|
|
|
+ */
|
|
|
+ public function verificationPassword($password,$scenario,$model)
|
|
|
+ {
|
|
|
+ // 判断密码长度不能少于8位
|
|
|
+ if (strlen($password) < 8){
|
|
|
+ return [ 'code' => 1000, 'type' => $scenario , 'message' => '登录密码不能小于8位' ];
|
|
|
+ }
|
|
|
+
|
|
|
+ // 判断密码中数字、大写字母、小写字母、特殊字符至少三种
|
|
|
+ $symbol = '`~!@#$^&*()=|{}\'\":;\',\\[\\].<>\/?~!@#¥……&*()——|{}【】‘;:”。,、?';
|
|
|
+ // $requiredRules = '/^(?![\d]+$)(?![a-z]+$)(?![A-Z]+$)(?!['.$symbol.']+$)[\da-zA-z'.$symbol.']{8,}$/'; // 这是两种的正则
|
|
|
+ $requiredRules = '/^(?![\da-z]+$)(?![\dA-Z]+$)(?![\d'.$symbol.']+$)(?![a-zA-Z]+$)(?![a-z'.$symbol.']+$)(?![A-Z'.$symbol.']+$)[\da-zA-z'.$symbol.']{8,}$/';
|
|
|
+ $requiredHandleResults = preg_match($requiredRules,$password);
|
|
|
+ if (!$requiredHandleResults){
|
|
|
+ return [ 'code' => 1000, 'type' => $scenario , 'message' => '登录密码中需要包含数字、大写字母、小写字母、特殊字符至少三种' ];
|
|
|
+ }
|
|
|
+
|
|
|
+ // 判断有三位或以上重复性
|
|
|
+ if(preg_match('/(\w)*(\w)\2{2}(\w)*/',$password)) {
|
|
|
+ return [ 'code' => 1000, 'type' => $scenario , 'message' => '登录密码中数字、大写字母、小写字母不能连续重复三个或以上' ];
|
|
|
+ }
|
|
|
+
|
|
|
+ // 判断密码中不能出现登录账号
|
|
|
+ if (strpos($password, $model->USER_NAME) !== false){
|
|
|
+ return [ 'code' => 1000, 'type' => $scenario , 'message' => '登录密码中不允许出现会员登录账号的信息' ];
|
|
|
+ }
|
|
|
+
|
|
|
+ // 判断密码中不能出现会员的手机号
|
|
|
+ if ($model->MOBILE){
|
|
|
+ if (strpos($password, $model->MOBILE) !== false){
|
|
|
+ return [ 'code' => 1000, 'type' => $scenario , 'message' => '登录密码中不允许出现会员的联系方式' ];
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 判断密码中不能出现会员的生日
|
|
|
+ if ($model->ID_CARD && strlen($model->ID_CARD) == 18){
|
|
|
+ $idCard = substr($model->ID_CARD,6,8);
|
|
|
+ if (strpos($password, $idCard) !== false){
|
|
|
+ return [ 'code' => 1000, 'type' => $scenario , 'message' => '登录密码中不允许出现会员的生日' ];
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ return [ 'code' => 200, 'type' => $scenario , 'message' => '验证通过了' ];
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 验证支付密码
|
|
|
* @param $payPassword
|