长时间不操作,自动退出登录

This commit is contained in:
2024-12-05 14:52:07 +08:00
parent 8d029785cf
commit be761fff26
2 changed files with 24 additions and 0 deletions

View File

@@ -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;
}

View File

@@ -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