长时间不操作,自动退出登录
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user