better-futures-studio / filament-local-logins
Quickly sign in to configured Filament accounts in local environments.
Package info
github.com/better-futures-studio/filament-local-logins
pkg:composer/better-futures-studio/filament-local-logins
Fund package maintenance!
Requires
- php: ^8.1
- filament/filament: ^3.0|^4.0|^5.0
- illuminate/contracts: ^10.0|^11.0|^12.0|^13.0
- spatie/laravel-package-tools: ^1.14.0
Requires (Dev)
- larastan/larastan: ^2.9|^3.0
- laravel/pint: ^1.0
- nunomaduro/collision: ^7.8|^8.0
- orchestra/testbench: ^8.0|^9.0|^10.0|^11.0
- phpstan/extension-installer: ^1.1
- phpstan/phpstan-deprecation-rules: ^1.0|^2.0
- phpstan/phpstan-phpunit: ^1.0|^2.0
- phpunit/phpunit: ^10.5.36|^11.5.50|^12.5.8|^13.0
This package is auto-updated.
Last update: 2026-08-10 09:08:25 UTC
README
This package allows you to log in locally using pre-set email addresses, making it easy to log into one or multiple development user accounts. It can be used in an admin panel or multiple panels.
Important
Only enable local logins in trusted local environments. The package never creates users: every configured email must already belong to a user who can access the panel.
Output
Requirements
Version 1 supports Filament 3, 4, and 5 while preserving the original PHP 8.1 and Laravel 10 support where the framework permits it.
| Filament | Livewire | Laravel | PHP |
|---|---|---|---|
^3.0 |
^3.0 |
10–12 | ^8.1 |
^4.0 |
^3.5 |
11–12 | ^8.2 |
^5.0 |
^4.1 |
11–13 | ^8.2 |
Composer will select the compatible versions for your application. Individual Laravel and Filament releases may require a newer PHP patch or minor version within these ranges.
Installation
You can install the package via composer:
composer require better-futures-studio/filament-local-logins
You can publish the config file with:
php artisan vendor:publish --tag="filament-local-logins-config"
This is the contents of the published config file:
use BetterFuturesStudio\FilamentLocalLogins\Filament\Pages\Auth\LoginPage; return [ 'panels' => [ 'admin' => [ 'enabled' => env('ADMIN_PANEL_LOCAL_LOGINS_ENABLED', env('APP_ENV') === 'local'), 'emails' => array_filter(array_map('trim', explode(',', env('ADMIN_PANEL_LOCAL_LOGIN_EMAILS', '')))), 'login_page' => LoginPage::class, ], ], ];
You can use it in multiple panels so if you want to add a configuration for a new panel, you can add a new config key with the panel id. For example, you can add user panel configuration like this:
use BetterFuturesStudio\FilamentLocalLogins\Filament\Pages\Auth\LoginPage; return [ 'panels' => [ 'admin' => [ 'enabled' => env('ADMIN_PANEL_LOCAL_LOGINS_ENABLED', env('APP_ENV') === 'local'), 'emails' => array_filter(array_map('trim', explode(',', env('ADMIN_PANEL_LOCAL_LOGIN_EMAILS', '')))), 'login_page' => LoginPage::class, ], 'user' => [ 'enabled' => env('USER_PANEL_LOCAL_LOGINS_ENABLED', env('APP_ENV') === 'local'), 'emails' => array_filter(array_map('trim', explode(',', env('USER_PANEL_LOCAL_LOGIN_EMAILS', '')))), 'login_page' => LoginPage::class, ], ], ];
Optionally, you can publish the views using
php artisan vendor:publish --tag="filament-local-logins-views"
Usage
Set the ADMIN_PANEL_LOCAL_LOGIN_EMAILS in your .env file to use this package.
In your .env file, add the following:
ADMIN_PANEL_LOCAL_LOGIN_EMAILS="free-user@example.com,paid-user@example.com" # Provide a comma-separated list of emails that can log in locally
If you wish to customize the default login page, change the 'login_page' => LoginPage::class, line to point to your class and use the HasLocalLogins trait. Filament moved its login page namespace in version 4, so use the matching base class.
For Filament 4 and 5:
use BetterFuturesStudio\FilamentLocalLogins\Concerns\HasLocalLogins; use Filament\Auth\Pages\Login; class YourCustomLoginPage extends Login { use HasLocalLogins; }
For Filament 3:
use BetterFuturesStudio\FilamentLocalLogins\Concerns\HasLocalLogins; use Filament\Pages\Auth\Login; class YourCustomLoginPage extends Login { use HasLocalLogins; }
In your Filament panel provider, typically AdminPanelProvider, you need to register the plugin:
use BetterFuturesStudio\FilamentLocalLogins\LocalLogins; $panel->plugin(new LocalLogins());
Login requests are accepted only for the email addresses configured for the current panel. The selected user must also pass Filament's canAccessPanel() check.
Testing
composer test
Changelog
Please see CHANGELOG for more information on what has changed recently.
Contributing
Please see CONTRIBUTING for details.
Security Vulnerabilities
Please review our security policy on how to report security vulnerabilities.
Credits
License
The MIT License (MIT). Please see License File for more information.