Ver código fonte

Weenier utc项目部署 0625

wesmiler 3 anos atrás
pai
commit
13282e6e57

+ 13 - 3
app/Http/Controllers/Api/LoginController.php

@@ -57,7 +57,7 @@ class LoginController extends webApp
         }
 
         if($params['code'] != 123456 && !$this->checkCode($params['username'], $params['code'], 'reg')){
-            return message(1017, false);
+            return message($this->error, false);
         }
 
         if(!MemberService::make()->register($params)){
@@ -78,9 +78,19 @@ class LoginController extends webApp
     {
         $validator = new MemberValidator();
         if(!is_array($validator->check(['mobile'=> $username],'mobile'))){
-            return EmailService::make()->check($username, $code, $scene);
+             if(!EmailService::make()->check($username, $code, $scene)){
+                 $this->error = EmailService::make()->getError();
+                 return false;
+             }
+
+             return true;
         }else{
-            return SmsService::make()->check($username, $code, $scene);
+            if(!SmsService::make()->check($username, $code, $scene)){
+                $this->error = SmsService::make()->getError();
+                return false;
+            }
+
+            return true;
         }
     }
 

+ 1 - 1
app/Services/Api/MemberService.php

@@ -74,7 +74,7 @@ class MemberService extends BaseService
             'mark'=> 1,
             'create_time'=> time(),
         ];
-        if(!$this->model->insert($data)){
+        if($this->model->insert($data)){
             return true;
         }
 

+ 14 - 0
app/Services/EmailService.php

@@ -132,6 +132,20 @@ class EmailService extends BaseService
      */
     public function check($email, $code, $scene = 'reg')
     {
+        $cacheKey = "stores:codes:email_{$scene}:" . md5($email);
+        $codeData = RedisService::get($cacheKey);
+        $checkCode = isset($codeData['code'])? $codeData['code'] : 0;
+        $checkEmail = isset($codeData['email'])? $codeData['email'] : 0;
+        if(empty($codeData) || empty($checkCode)){
+            $this->error = 2010;
+            return false;
+        }
+        
+        if($checkEmail != $email || $checkCode != $code){
+            $this->error = 2006;
+            return false;
+        }
+
         return true;
     }
 

+ 1 - 1
app/Services/RedisService.php

@@ -36,7 +36,7 @@ class RedisService extends BaseRedis
     {
         $data = BaseRedis::get($key);
         $jsonData = $data ? json_decode($data, true) : [];
-        return $jsonData ? $jsonData : $data;
+        return $jsonData ? $jsonData : (is_null($data)? false : $data);
     }
 
     /**

+ 14 - 0
app/Services/SmsService.php

@@ -55,6 +55,20 @@ class SmsService extends BaseService
      */
     public function check($mobile, $code, $scene='reg')
     {
+        $cacheKey = "stores:codes:mobile_{$scene}:" . md5($mobile);
+        $codeData = RedisService::get($cacheKey);
+        $checkCode = isset($codeData['code'])? $codeData['code'] : 0;
+        $checkMobile = isset($codeData['mobile'])? $codeData['mobile'] : '';
+        if(empty($codeData) || empty($checkCode)){
+            $this->error = 2010;
+            return false;
+        }
+
+        if($checkMobile != $mobile || $checkCode != $code){
+            $this->error = 2006;
+            return false;
+        }
+
         return true;
     }