Parcourir la source

登陆-3个接口

rkljw il y a 1 mois
Parent
commit
a0310e592d
2 fichiers modifiés avec 46 ajouts et 12 suppressions
  1. 42 12
      app/Controller/LoginController.php
  2. 4 0
      config/api/login.php

+ 42 - 12
app/Controller/LoginController.php

@@ -7,6 +7,7 @@ use App\Tools\CommonService;
 use App\Tools\PublicData;
 use App\Tools\Result;
 use Hyperf\Context\Context;
+use PHPStan\Type\Accessory\OversizedArrayType;
 use function Hyperf\Support\env;
 use Hyperf\Di\Annotation\Inject;
 use Hyperf\HttpServer\Annotation\AutoController;
@@ -347,6 +348,7 @@ class LoginController extends AbstractController
      */
     public function loginStatus()
     {
+
         $reqData = $this->request->all();
         $validator = $this->validationFactory->make(
             $reqData,
@@ -362,26 +364,17 @@ class LoginController extends AbstractController
             return Result::error($errorMessage);
         }
         $redis = $this->container->get(\Hyperf\Redis\Redis::class);
-        $token = $redis->get(urldecode($reqData['token']));
-        if(empty($token)){
-                return Result::error('token不存在');
-        }
-        $token = md5($token);
+        $token = md5(urldecode($reqData['token']));
         $ticketEnabled = $redis->exists('ticket:' . $token);
         if ($ticketEnabled) {
-            $ticket = $redis->get('ticket:' . $token);
-            $ticket = json_decode($ticket, true);
-            if ($ticket['expire'] < time()) {
-                return Result::error('token已过期');
-            }
-            return Result::success(['isLogin' => $ticketEnabled]);
+            return Result::success(['isLogin' => true]);
         } else {
             return Result::error('token已过期');
         }
     }
 
     /**
-     *
+     *登陆
      * @return void
      */
     public function loginapi()
@@ -401,5 +394,42 @@ class LoginController extends AbstractController
             return Result::error($errorMessage);
         }
 
+        $redis = $this->container->get(\Hyperf\Redis\Redis::class);
+        $ticket = md5($reqData['token']);
+
+        $res = $redis->set('ticket:' . $ticket, $reqData['token'],  3600*24);
+        if ($res){
+            return Result::success(['ticket' => $ticket ,'isSave' => 1]);
+        } else {
+            return Result::error('存储失败');
+        }
+    }
+
+    public function logoutapi()
+    {
+        $reqData = $this->request->all();
+        $validator = $this->validationFactory->make(
+            $reqData,
+            [
+                'token' => 'required',
+            ],
+            [
+                'token.required' => 'token不能为空',
+            ]
+        );
+        if ($validator->fails()) {
+            $errorMessage = $validator->errors()->first();
+            return Result::error($errorMessage);
+        }
+        $redis = $this->container->get(\Hyperf\Redis\Redis::class);
+        $ticket = md5($reqData['token']);
+        $isDel = 0;
+        if ($redis->exists('ticket:' . $ticket)) {
+            $res = $redis->del('ticket:' . $ticket);
+            if (!!$res && $res == 1) $isDel = 1;
+        }else{
+            $isDel = 1;
+        }
+        return Result::success(['isDel' => $isDel]);
     }
 }

+ 4 - 0
config/api/login.php

@@ -14,6 +14,10 @@ Router::addRoute(['GET', 'POST'], '/getverifyCode', 'App\Controller\IndexControl
 Router::post('/api/registerOrLogin', 'App\Controller\LoginController@registerOrLogin');
 Router::post('/api/getToken', 'App\Controller\LoginController@getToken');
 
+//查询登陆状态
 Router::get('/api/loginStatus', 'App\Controller\LoginController@loginStatus');
+//登陆存储
 Router::get('/api/loginapi', 'App\Controller\LoginController@loginapi');
+//退出登陆
+Router::get('/api/logoutapi', 'App\Controller\LoginController@logoutapi');