rkljw 1 bulan lalu
induk
melakukan
d23c49dd3f
2 mengubah file dengan 69 tambahan dan 0 penghapusan
  1. 65 0
      app/Controller/LoginController.php
  2. 4 0
      config/api/login.php

+ 65 - 0
app/Controller/LoginController.php

@@ -337,4 +337,69 @@ class LoginController extends AbstractController
             }
         }
     }
+
+    /**
+     * 查询登陆状态
+     * @return array
+     * @throws \Psr\Container\ContainerExceptionInterface
+     * @throws \Psr\Container\NotFoundExceptionInterface
+     * @throws \RedisException
+     */
+    public function loginStatus()
+    {
+        $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);
+        $token = $redis->get(urldecode($reqData['token']));
+        if(empty($token)){
+                return Result::error('token不存在');
+        }
+        $token = md5($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]);
+        } else {
+            return Result::error('token已过期');
+        }
+    }
+
+    /**
+     *
+     * @return void
+     */
+    public function loginapi()
+    {
+        $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);
+        }
+
+    }
 }

+ 4 - 0
config/api/login.php

@@ -13,3 +13,7 @@ Router::post('/api/checkVerifyCode', 'App\Controller\LoginController@checkVerify
 Router::addRoute(['GET', 'POST'], '/getverifyCode', 'App\Controller\IndexController@getverifyCode');
 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');
+