Преглед изворни кода

APP小程序-注册登录功能改进-测试登录注册分开

xupuyuan пре 11 месеци
родитељ
комит
9ca329d187
1 измењених фајлова са 52 додато и 17 уклоњено
  1. 52 17
      app/controller/api/Auth.php

+ 52 - 17
app/controller/api/Auth.php

@@ -1364,22 +1364,42 @@ class Auth extends BaseController
1364 1364
         $data = $this->request->params(['phone', 'code', 'key',"type"]);
1365 1365
         $validate->sceneVerify()->check($data);
1366 1366
         log::info("发送短信方法");
1367
+        if ($data['type']=="login"){
1368
+            $count=Db::name("user")->where("phone", $data["phone"])->count();
1369
+            if (!$count){
1370
+                return app('json')->make(405, '该手机号未注册,请去注册');
1371
+            }
1372
+            $sms_num_key = 'api.auth.num.' . $data['phone'];
1373
+            $num = Cache::get($sms_num_key) ?: 0;
1374
+            log::info("num{$num}");
1375
+
1376
+            if ($num > 9) {
1377
+                if (!$data['code'])
1378
+                    return app('json')->make(402, '操作过于频繁,请稍后重试~');
1379
+                if (!$this->smslogin($data['phone'], $data['code'])) {
1380
+                    return app('json')->fail('登录验证码输入有误');
1381
+                }
1382
+            }
1383
+        }
1384
+
1367 1385
         if ($data['type']=="register"){
1368 1386
             $count=Db::name("user")->where("phone", $data["phone"])->count();
1369 1387
             if ($count){
1370
-                return app('json')->make(405, '该手机号已注册');
1388
+                return app('json')->make(405, '该手机号已注册,请直接登录');
1389
+            }
1390
+            $sms_num_key = 'api.auth.num.' . $data['phone'];
1391
+            $num = Cache::get($sms_num_key) ?: 0;
1392
+            log::info("num{$num}");
1393
+
1394
+            if ($num > 9) {
1395
+                if (!$data['code'])
1396
+                    return app('json')->make(402, '操作过于频繁,请稍后重试~');
1397
+                if (!$this->registersmscode($data['phone'], $data['code'])) {
1398
+                    return app('json')->fail('注册验证码输入有误');
1399
+                }
1371 1400
             }
1372 1401
         }
1373
-        $sms_num_key = 'api.auth.num.' . $data['phone'];
1374 1402
         $sms_key = 'api.auth.sms.' . $data['phone'];
1375
-        $num = Cache::get($sms_num_key) ? Cache::get($sms_num_key) : 0;
1376
-        log::info("num{$num}" );
1377
-        if ($num > 9) {
1378
-            if (!$data['code'])
1379
-                return app('json')->make(402, '操作过于频繁,请稍后重试~');
1380
-            if (!$this->checkCaptcha($data['key'], $data['code']))
1381
-                return app('json')->fail('验证码输入有误');
1382
-        }
1383 1403
         $sms_code = str_pad(random_int(1, 9999), 4, 0, STR_PAD_LEFT);
1384 1404
         $sms_time = systemConfig('sms_time') ? systemConfig('sms_time') : 30 ;
1385 1405
         $res = app()->make(AliYunSmsService::class)->send($data['phone'],  $sms_code);
@@ -1533,14 +1553,8 @@ class Auth extends BaseController
1533 1553
 
1534 1554
         $user = $repository->accountByUser($data['phone']);
1535 1555
         if (!$user){
1536
-            $data['spread_uid'] = 0;
1537
-            if (intval($data['share_id'])) {
1538
-                $spread_uid = Db::name('product_share')->where('id', $data['share_id'])->value('uid');
1539
-                $data['spread_uid'] = $spread_uid;
1540
-            }
1541
-            $user = $repository->registr($data['phone'], null, 'h5', '','',1, $data['spread_uid']);
1556
+            return app('json')->fail('手机号未注册,请先注册');
1542 1557
         }
1543
-        $user = $repository->mainUser($user);
1544 1558
 
1545 1559
         // if($this->source=='yhc' && $this->merId){
1546 1560
         //     $where=['mer_id'=>$this->merId,'uid'=>$user->uid];
@@ -1569,6 +1583,27 @@ class Auth extends BaseController
1569 1583
         return app('json')->success($repository->returnToken($user, $tokenInfo));
1570 1584
     }
1571 1585
 
1586
+    public function registerSmscode(UserAuthValidate $validate, UserRepository $repository)
1587
+    {
1588
+        $data = $this->request->params(['phone', 'sms_code', 'spread_uid']);
1589
+        $validate->sceneSmslogin()->check($data);
1590
+
1591
+        $count = Db::name('user')->where('phone', $data['phone'])->count();
1592
+        if ($count > 0) {
1593
+            return app('json')->fail('手机号已注册,请直接登录');
1594
+        }
1595
+
1596
+        if (!$this->checkSmsCode($data['phone'], $data['sms_code'])) {
1597
+            return app('json')->fail('验证码不正确');
1598
+        }
1599
+
1600
+        $user = $repository->registr($data['phone'], null, 'h5', '', '', 1, $data['spread_uid']);
1601
+        $user = $repository->mainUser($user);
1602
+        $tokenInfo = $repository->loginAfter($user);
1603
+        return app('json')->success($repository->returnToken($user, $tokenInfo));
1604
+    }
1605
+
1606
+
1572 1607
     public function merJavaRegister(UserRepository $repository){
1573 1608
         $data = $this->request->params(['phone', 'spread','token','sign']);
1574 1609
         Log::channel("gong")->info("供应链取消商品数据:" . json_encode($data));