Laravel 11.8 Dynamische SitzungslebensdauerPhp

PHP-Programmierer chatten hier
Guest
 Laravel 11.8 Dynamische Sitzungslebensdauer

Post by Guest »

Ich entwickle eine Anwendung mit Laravel 11.8 und aufgrund spezifischer Geschäftsanforderungen benötigen verschiedene Benutzer unterschiedliche Sitzungsdauern. Obwohl der Wert in der Konfiguration wie erwartet aktualisiert wird, verwendet die Sitzungsdauer weiterhin den in der .env-Datei definierten Wert.
Hier ist die Middleware:

Code: Select all

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);
}
}
Ich habe gelesen, dass diese Middleware vor \Illuminate\Session\Middleware\StartSession in app/Http/Kernel.php< platziert werden muss /em> unter der Eigenschaft protected $middlewarePriority. Da ich jedoch Laravel 11.8 verwende, existiert die Datei app/Http/Kernel.php nicht mehr. Selbst wenn dies der Fall wäre, würde dies nicht helfen, da \Illuminate\Session\Middleware\StartSession erforderlich ist, damit Illuminate\Support\Facades\Auth funktioniert.
ChatGPT hat Folgendes vorgeschlagen:

Code: Select all

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);
}
}
Diese Lösung funktioniert jedoch auch nicht. Ich nehme an, ich muss die Cookies bearbeiten, damit sich die Sitzungsdauer ändert, aber ich weiß nicht, wie ich das angehen soll.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post