digifactory / filament-wildcard-login
Allow all e-mail addresses for a specific domain name to login to a generic account for that domain.
Fund package maintenance!
DigiFactory
Requires
- php: ^8.3
- filament/filament: ^3.0
- spatie/laravel-package-tools: ^1.15.0
Requires (Dev)
- larastan/larastan: ^2.9
- laravel/pint: ^1.0
- nunomaduro/collision: ^8.0.0
- orchestra/testbench: ^9.0
- pestphp/pest: ^2.1
- pestphp/pest-plugin-arch: ^2.0
- pestphp/pest-plugin-laravel: ^2.0
- phpstan/extension-installer: ^1.1
- phpstan/phpstan-deprecation-rules: ^1.0
- phpstan/phpstan-phpunit: ^1.0
This package is auto-updated.
Last update: 2025-06-16 09:13:31 UTC
README
This package allows you to allow users with an e-mail address ending in specific domain names to login using an e-mail instead of using a password. After installing this package you can have a generic account (e.g. helpdesk@digifactory.nl
) and everyone using a @digifactory.nl
mail address can login using the e-mail sent directly to their inbox.
Since v1.0.3 it is also possible to enable e-mail login for all users. When enabled ($plugin->allowAllDomains()
) the plugin will look for that specific user/e-mail address instead of a specific domain. This option can be enabled on top of the base functionality of this package.
Installation
You can install the package via composer:
composer require digifactory/filament-wildcard-login
Usage
You can add the FilamentWildcardLoginPlugin
to your Filament Panel
like this:
->plugins([ FilamentWildcardLoginPlugin::make() ->domains([ 'digifactory.nl', ]) ->loginDirectlyWithoutSendingEmail(app()->environment('local')), ])
These methods are available on the FilamentWildcardLoginPlugin
instance:
Method | Description |
---|---|
enabled(Closure | bool $value = true) |
This method allows you to enable the plugin using a boolean or callback, by default the plugin is enabled. |
loginDirectlyWithoutSendingEmail(Closure | bool $value = true) |
This method allows you to enable direct login, without sending the e-mail. This can be handy for local development. |
domains(array $domains) |
This method allows you to define the domains that can login using the e-mail link. |
model(string $modelClass, string $modelColumn = 'email') |
This method allows you to define the used User model and column, by default the plugin users App\Model\User and email . |
emailValidForMinutes(int $minutes) |
This method allows you to define after how many minutes the link in the e-mail should expire. The default is 5 minutes. |
allowAllDomains(Closure | bool $value = true) |
This method allows you to allow all e-mail address to login using an e-mail. |
Preview
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.