better-futures-studio/filament-local-logins

Quickly sign in to configured Filament accounts in local environments.

Maintainers

Package info

github.com/better-futures-studio/filament-local-logins

pkg:composer/better-futures-studio/filament-local-logins

Transparency log

Fund package maintenance!

better-futures-studio

Statistics

Installs: 37 342

Dependents: 0

Suggesters: 0

Stars: 13

Open Issues: 0

1.5.1 2026-08-10 09:08 UTC

This package is auto-updated.

Last update: 2026-08-10 09:08:25 UTC


README

Latest Version on Packagist GitHub Tests Action Status GitHub Code Style Action Status Total Downloads

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

SCR-20240103-qijm.png

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.