Просмотр исходного кода

app小程序-注册-检测重复注册

Xpy месяцев назад: 8
Родитель
Сommit
ad347f5f8a
1 измененных файлов с 11 добавлено и 0 удалено
  1. 11 0
      app/controller/api/Auth.php

+ 11 - 0
app/controller/api/Auth.php

@@ -503,6 +503,13 @@ class Auth extends BaseController
503
 
503
 
504
         // return "=====";
504
         // return "=====";
505
         $data = $this->request->params(['phone', 'sms_code', 'spread', 'password',"spread_phone","type","mer_id"]);
505
         $data = $this->request->params(['phone', 'sms_code', 'spread', 'password',"spread_phone","type","mer_id"]);
506
+        $lockKey = 'lock:register:' . $data['phone'];
507
+        $redis = \think\facade\Cache::store('redis')->handler();
508
+        $acquired = $redis->set($lockKey, 1, ['nx', 'ex' => 15]);
509
+        if (!$acquired) {
510
+            return app('json')->fail('正在注册,请稍后');
511
+        }
512
+        try {
506
         $type=$data['type']??'';
513
         $type=$data['type']??'';
507
         unset($data['type']);
514
         unset($data['type']);
508
         $validate->sceneSmslogin()->check($data);
515
         $validate->sceneSmslogin()->check($data);
@@ -574,6 +581,10 @@ class Auth extends BaseController
574
         $repository->createUserOperatingRecord($user->uid, 1, 1, '用户同意用户协议记录');
581
         $repository->createUserOperatingRecord($user->uid, 1, 1, '用户同意用户协议记录');
575
         return app('json')->success($result);
582
         return app('json')->success($result);
576
 
583
 
584
+        } finally {
585
+            $redis->del($lockKey);
586
+        }
587
+
577
     }
588
     }
578
 
589
 
579
     /**
590
     /**