|
@@ -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()
|
|
|
+ {
|
|
|
+
|
|
|
+ }
|
|
|
}
|