Laravel 11.8 Время жизни динамической сессииPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Laravel 11.8 Время жизни динамической сессии

Сообщение Anonymous »

Я разрабатываю приложение с использованием Laravel 11.8, и из-за особых бизнес-требований у разных пользователей должна быть разная продолжительность сеансов. Хотя значение в конфигурации обновляется, как и ожидалось, продолжительность сеанса по-прежнему использует значение, определенное в файле .env.
Вот промежуточное программное обеспечение:

Код: Выделить всё

class SessionLifeTime {
public function handle(Request $request, Closure $next): Response {
if (Auth::check()) {
$user = Auth::user();
if ($user && isset($user->session_lifetime)) {
config(['session.lifetime' => $user->session_lifetime]);
}
}

return $next($request);
}
}
Я читал, что это промежуточное ПО необходимо разместить перед \Illuminate\Session\Middleware\StartSession в app/Http/Kernel.php< /em> в защищенном свойстве $middlewarePriority. Однако, поскольку я использую Laravel 11.8, файл app/Http/Kernel.php больше не существует. Даже если бы это было так, это не помогло бы, потому что \Illuminate\Session\Middleware\StartSession необходим для работы Illuminate\Support\Facades\Auth.
ChatGPT предложил следующее:

Код: Выделить всё

class SessionLifeTime {
public function handle(Request $request, Closure $next): Response {
if (Auth::check()) {
$user = Auth::user();

if ($user && isset($user->session_lifetime)) {
config(['session.lifetime' => $user->session_lifetime]);

$cookieName = config('session.cookie');
$sessionId = Cookie::get($cookieName);

if ($sessionId) {
Cookie::queue(Cookie::make(
$cookieName,
$sessionId,
$user->session_lifetime
));
}
}
}

return $next($request);
}
}
Однако это решение тоже не работает. Полагаю, мне нужно отредактировать файлы cookie, чтобы изменить продолжительность сеанса, но я не знаю, как к этому подойти.

Подробнее здесь: https://stackoverflow.com/questions/793 ... n-lifetime
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»