From be761fff266ad702a058a7738c263a4b584a2ec8 Mon Sep 17 00:00:00 2001 From: lq Date: Thu, 5 Dec 2024 14:52:07 +0800 Subject: [PATCH] =?UTF-8?q?=E9=95=BF=E6=97=B6=E9=97=B4=E4=B8=8D=E6=93=8D?= =?UTF-8?q?=E4=BD=9C=EF=BC=8C=E8=87=AA=E5=8A=A8=E9=80=80=E5=87=BA=E7=99=BB?= =?UTF-8?q?=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- admin/components/BaseAdminController.php | 20 ++++++++++++++++++++ admin/controllers/LoginController.php | 4 ++++ 2 files changed, 24 insertions(+) diff --git a/admin/components/BaseAdminController.php b/admin/components/BaseAdminController.php index 5e0bad6..3a2bc2b 100644 --- a/admin/components/BaseAdminController.php +++ b/admin/components/BaseAdminController.php @@ -8,6 +8,7 @@ use admin\foundation\Cors; use admin\models\Admin; use admin\models\Config; use common\helpers\FakeId; +use common\models\AdminAccessToken; use common\models\AuthRole; use common\models\AuthRule; use Yii; @@ -26,6 +27,7 @@ use yii\rest\ActiveController; use common\core\TokenAuth; use yii\base\Controller; use yii\web\Response; +use yii\web\UnauthorizedHttpException; use function Symfony\Component\String\b; /** @@ -147,6 +149,24 @@ class BaseAdminController extends Controller Yii::$app->supplierId = $this->supplierId; } + // 判断是否30分钟以上未操作 + $uid = Yii::$app->user->identity->id; + $redis = Yii::$app->redis; + $opKey = 'op_user_'. $uid; +// ds(date('Y-m-d H:i:s', time() + $redis->ttl($opKey))); + if (!$redis->exists($opKey)) { + $adminAccessToken = new AdminAccessToken(); + $olds = $adminAccessToken::find()->where(['admin_id' => $uid, 'status' => 1])->all(); + + foreach ($olds as $old) { + $old->status = -1; + $old->updated_at = time(); + $old->save(); + } + throw new UnauthorizedHttpException('您太久未操作,请重新登陆。'); + } else { + $redis->expire($opKey, 3600); + } return $ret; } diff --git a/admin/controllers/LoginController.php b/admin/controllers/LoginController.php index 0366c13..84fb70b 100644 --- a/admin/controllers/LoginController.php +++ b/admin/controllers/LoginController.php @@ -64,6 +64,10 @@ class LoginController extends BaseAdminController } $admin['title'] = $title; + // 设置登录过期时间 + $opKey = 'op_user_'. $admin['uid']; + $redis->set($opKey, time()); + $redis->expire($opKey, 3600); return [ 'userInfo' => $admin, 'token' => $adminAccessToken->access_token