niladam/filament-auto-logout
Automatically log out idle users from your Filament panels. Set a configurable inactivity timeout, show a warning modal with a countdown before logout, and redirect to the login page. Lightweight, easy to install, and configurable per panel.
composer require niladam/filament-auto-logout:^3.0
Only take ^3.0 if you are already on Filament v5. On v3/v4 panels stay on ^2.0; there is nothing to gain from forcing it.Panel provider you actually use (app/Providers/Filament/AdminPanelProvider.php). Registration happens in panel() alongside the other plugins — that is the single place where behaviour is turned on. Then publish the config so you can read the available keys rather than guessing:
php artisan vendor:publish --tag="filament-auto-logout-config"
Panel, you can give AdminPanelProvider a 10-minute timeout and leave a customer-facing panel alone. Prefer this over one global value; it is the package's main structural advantage over a hand-rolled middleware.config/filament.php-style env vars. That keeps staging (2 minutes, so you can actually see the modal) different from production (15–30 minutes) without a code diff.SESSION_LIFETIME longer than timeout + warning window. If the session dies first, users get a 419/"page expired" screen instead of your nice warning modal, and QA will file it as a plugin bug.Log::info so you can later distinguish "user idled out" from "user's session was invalidated" when investigating support tickets.enabled => env(...)), watch for a week, then turn on for other panels. It is a behaviour change for every existing user, not an additive feature.filament/filament constraint moved to v5. Practically: nothing in your code changes, but Composer will refuse the update until Filament itself is on v5 — and conversely, upgrading Filament to v5 will force this bump. If you see a conflict, run composer why-not niladam/filament-auto-logout 3.0.0 before assuming the plugin is at fault; it is usually a sibling Filament plugin still pinning v4.platform.php in composer.json and your CI matrix before upgrading — the constraint failure will look like a package problem and is actually a runtime problem.--force publish. Diff the old file against the new stub: config keys can be added/renamed between majors, and stale published Blade views that reference Filament v4 markup are the most likely thing to break on a v5 panel (blank modal, or a modal that never dismisses). Clear caches after any publish: php artisan optimize:clear (plus filament:optimize-clear if you use Filament's production optimisations).SESSION_LIFETIME and a real re-auth prompt as the security boundary.BroadcastChannel/storage-event pattern) or whether the 419 is acceptable.true in php artisan tinker (config('filament-auto-logout')), (3) config cache cleared after edits — php artisan config:cache on a deploy will happily bake in the old timeout, (4) the plugin's JS is present in the page source, (5) not running behind a panel that requires a full reload to pick up the plugin list. That order resolves ~90% of "it's installed but not logging me out".* here: this package's majors are entirely driven by Filament majors, so pin ^2.0 or ^3.0 to match your Filament version and let Dependabot bump them in lockstep.How can I help you explore Laravel packages today?