Quellcode durchsuchen

Merge branch 'loginstatus_03_05_liu'

rkljw vor 1 Monat
Ursprung
Commit
3ca323f043
2 geänderte Dateien mit 112 neuen und 0 gelöschten Zeilen
  1. 100 0
      app/Controller/LoginController.php
  2. 12 0
      config/api/login.php

+ 100 - 0
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;
@@ -337,4 +338,103 @@ 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 = md5(urldecode($reqData['token']));
+        $ticketEnabled = $redis->exists('ticket:' . $token);
+        if ($ticketEnabled) {
+            return Result::success(['isLogin' => true]);
+        } 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);
+        }
+
+        $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]);
+    }
+
+    public function goLogin()
+    {
+
+    }
 }

+ 12 - 0
config/api/login.php

@@ -13,3 +13,15 @@ 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');
+//退出登陆
+Router::get('/api/logoutapi', 'App\Controller\LoginController@logoutapi');
+
+Router::get('/api/goLogin', 'App\Controller\LoginController@goLogin');
+Router::get('/api/logout', 'App\Controller\LoginController@logout');
+Router::get('/api/backlogin', 'App\Controller\LoginController@backlogin');
+