Да, вы можете установить индивидуальное время ожидания сеанса для каждого пользователя. Вы можете использовать метод, описанный в Как истечь сессию PHP через 30 минут? , но вместо этого сохранить абсолютное время истечения:
// set expiration time
$_SESSION['EXPIRES'] = time() + $customSessionLifetime;
// validate session
if (isset($_SESSION['EXPIRES']) && (time() < $_SESSION['EXPIRES'])) {
// session still valid; update expiration time
$_SESSION['EXPIRES'] = time() + $customSessionLifetime;
} else {
// session invalid or expired
session_destroy();
session_unset();
}
Здесь $customSessionLifetime
можно установить по-разному для каждого пользователя. Просто убедитесь, что его значение меньше или равно session.gc_maxlifetime и session.cookie_lifetime (если вы используете cookie для идентификатора сеанса).