Skip to content

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.

License

Notifications You must be signed in to change notification settings

digifactory/filament-wildcard-login

Repository files navigation

Filament Wildcard Login

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

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. [email protected]) 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

preview preview-email

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.

About

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.

Resources

License

Security policy

Stars

Watchers

Forks

Sponsor this project

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •  

Languages