nextmigrant / magic-link-login
A scaffolding package for Magic Link Authentication in Laravel Filament applications.
Installs: 3
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 0
Open Issues: 0
pkg:composer/nextmigrant/magic-link-login
Requires
- filament/filament: ^3.0|^4.0
- illuminate/support: ^10.0|^11.0|^12.0
- laravel/prompts: *
- livewire/livewire: ^3.0
This package is auto-updated.
Last update: 2026-01-08 23:06:23 UTC
README
A scaffolding package for Magic Link Authentication in Laravel and Filament applications. This package installs the necessary files into your Laravel application and then removes itself, leaving you with full control over the code.
Installation
-
Require the package as a development dependency:
composer require --dev nextmigrant/magic-link-login
-
Run the install command:
php artisan magic-link:install
This command will interactively guide you through the process:
- Copy Files: Scaffolds Models, Controllers, Livewire components, Views, and Mailables into your application.
- Configure Routes: Automatically creates or updates
routes/admin/admin.php. - Update User Model: Automatically injects the
HasMagicLogintrait intoapp/Models/User.php. - Cleanup: Offers to remove the package dependency (
composer remove) to keep your project dependencies clean.
-
Run migrations:
php artisan migrate
Post-Installation
-
Disable Default Filament Login: In your
app/Providers/Filament/AdminPanelProvider.php, you must remove or comment out the->login()method to disable the default Filament login page. This package provides its own authentication flow.public function panel(Panel $panel): Panel { return $panel // ... // ->login() // <--- Remove this line // ... }
-
Explore the Code: After installation, the code belongs to you! You can find the key files here:
app/Http/Controllers/Admin/AuthController.phpapp/Livewire/Admin/Auth/Login.phpapp/Services/Auth/AuthenticationService.phpresources/views/livewire/admin/auth/login.blade.php
Feel free to modify them to suit your project's needs.
Features
- Magic Link Login: Secure, passwordless login via email links.
- Filament Ready: seamless integration with Filament Admin panels.
- Rate Limiting: Built-in security protections.
- Self-Cleaning: Designed to be installed, exhausted, and removed.
Email Delivery & Queues
By default, the magic link emails are sent using Laravel's queue system to ensure a fast response time for the user.
-
Run the Queue Worker: Ensure you have a queue worker running in your environment (local and production) to process the emails:
php artisan queue:work
-
Customizing Delivery: If you prefer to send emails synchronously (immediately) or use a specific queue connection, you can modify the
handleLoginmethod in the published Livewire component:File:
app/Livewire/Admin/Auth/Login.php// Default (Queued) Mail::to($user)->queue(new MagicLoginLink($temporaryLoginLink)); // Synchronous (Immediate) Mail::to($user)->send(new MagicLoginLink($temporaryLoginLink));
Usage without Filament
While this package is designed for Filament, it can be used with any Laravel application.
If you are not using Filament, you simply need to update the redirect destination after a successful login.
-
Open
app/Http/Controllers/Admin/AuthController.php. -
Locate the
loginmethod. -
Change the redirect to your desired dashboard route:
return redirect()->to( // Filament::getPanel('admin')->getUrl() // <--- Remove this route('dashboard') // <--- Add your own route );
License
The MIT License (MIT). Please see License File for more information.