Download the PHP package spykapps/filament-passwordless-login without Composer
On this page you can find all versions of the php package spykapps/filament-passwordless-login. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download spykapps/filament-passwordless-login
More information about spykapps/filament-passwordless-login
Files in spykapps/filament-passwordless-login
Package filament-passwordless-login
Short Description A highly customizable Filament 4 plugin for passwordless magic link authentication with login page, actions, resource management, and analytics widgets.
License MIT
Homepage https://github.com/spykapps/filament-passwordless-login
Informations about the package filament-passwordless-login
Filament Passwordless Login
A highly customizable Filament 4 & 5 plugin for passwordless (magic link) authentication — built on top of spykapps/passwordless-login.
Features
- 🔐 Magic Link Login Page : Extends Filament's native login — no custom views needed
- ⚡ Reusable Action : Modal/slide-over action to send magic links from anywhere
- 💡 Login Action : Configurable as email field hint or button after login form
- 📊 Resource Widgets : Stats overview, line charts, and top users table on the resource page
- 🗂️ Token Resource : Full Filament resource to manage, generate, and invalidate tokens
- 🌍 Multilingual : 8 languages included (en, es, fr, de, nl, ar, hi, pt)
- 📧 Custom Mailable / Notification : Use your own email templates via fluent API
- ⚙️ Fully Configurable : Everything via plugin fluent API, config file, or language files
Requirements
- PHP 8.1+
- Laravel 10, 11, 12, or 13
- Filament 4.x, 5.x
- spykapps/passwordless-login ^1.0
Installation
1. Install the packages
This will also install spykapps/passwordless-login as a dependency.
2. Set up the base passwordless-login package
If you haven't already set up the base package, publish and run the migrations:
Important: The
passwordless_login_tokenstable must exist before using this plugin. If you've already run the migration, skip this step.
3. Add the trait to your User model
4. Register the plugin
That's it! The plugin will replace the login page, register the token resource with widgets.
Already installed? Run the upgrade command
If you're upgrading from a previous version, the base package includes a command to apply new schema changes (such as the failure_url column) to your existing tokens table without recreating it:
The command will:
- Ask for your tokens table name (defaults to
passwordless_login_tokens, or the value from your config) - Show a disclaimer listing every column it intends to add
- Ask for confirmation before touching your database
- Add any missing columns — safely skipping ones that already exist
Non-destructive & idempotent — only adds new nullable columns, safe to run multiple times.
5. Publish plugin config (optional)
6. Publish language files (optional)
Plugin Configuration (Full Reference)
All options can be set fluently in the plugin registration:
Configuration Priority
Settings follow this priority order: Plugin fluent API → Config file → Language file → Hardcoded default
| Setting | Plugin API | Config | Lang | Default |
|---|---|---|---|---|
| Icon | ->loginActionIcon() |
login_action.icon |
— | heroicon-m-link |
| Color | ->loginActionColor() |
login_action.color |
— | primary |
| Slideover | ->slideover() |
login_action.slideover |
— | false |
| Nav Group | ->navigationGroup() |
— | navigation_group |
Authentication |
| Nav Label | — | — | navigation_label |
Magic Links |
| Mailable | ->mailable() |
— | — | Base package default |
| Notification | ->notification() |
— | — | Base package default |
| Redirect URL | ->redirectUrl() |
— | — | filament()->getUrl() → passwordless-login.redirect.on_success |
| Failure URL | ->failureUrl() |
— | — | filament()->getLoginUrl() → passwordless-login.redirect.on_failure |
Login Page
The plugin extends Filament's native Filament\Pages\Auth\Login — no custom views or Blade templates needed.
The form shows only an email field. On submit, a magic link is sent and the page switches to a "Check your email!" confirmation state.
Default Setup (replaces Filament login)
Keep Password Login Available
Disable (keep default Filament login)
Redirect URLs
By default, the plugin auto-detects redirect URLs from the current Filament panel — no configuration needed in most cases.
| URL | Default (auto-detected) | Description |
|---|---|---|
| Redirect URL | filament()->getUrl() (e.g. /admin) |
Where the user goes after clicking the magic link |
| Failure URL | filament()->getLoginUrl() (e.g. /admin/login) |
Where the user goes when a link is expired, invalid, or used |
Override via Plugin
Priority
- Plugin fluent API —
->redirectUrl()/->failureUrl() - Auto-detected — Current Filament panel URL / login URL
- Base package config —
passwordless-login.redirect.on_success/on_failure
Multi-Panel Setup
Each panel automatically uses its own URLs. No extra configuration needed:
Explicit Per-Panel Redirect
Custom Login Page
Extend the plugin's login page:
Register it:
Login Action
The SendMagicLinkAction can be used in two positions on the login page, or standalone anywhere in your panel.
Position: Email Field Hint
Adds a clickable hint icon next to the email field on the default Filament password login page:
Position: Button After Login Form
Renders a button below the sign-in button on the default Filament password login page:
Customizing the Login Action
Using SendMagicLinkAction Standalone
Use SendMagicLinkAction anywhere in your Filament panel — page headers, table actions, form hint actions:
Page Header Action
Table Row Action
Form Field Hint Action
As a Slide-over
Custom Mailable
Send magic links using your own Mailable class instead of the default:
1. Create your Mailable
2. Create the Blade template
3. Register it in the plugin
Custom Notification
Use your own Laravel Notification class instead of the default:
1. Create your Notification
2. Register it in the plugin
Note: Your notification class receives
$url,$expiryMinutes, and$metadatain the constructor — same signature as the base package's default notification.
Token Resource
The plugin registers a full Filament resource for managing magic login tokens at /admin/magic-login-tokens (configurable).
Features
- List View — All tokens with status badges (Active / Expired / Used)
- Filters — By status (active, expired, used) and date range
- Search — By user name or email
- Create — Generate tokens manually with options: user, guard, redirect URL, expiry, max uses, send notification toggle
- Invalidate — Expire individual tokens immediately
- Bulk Delete — Select and delete multiple tokens
- Cleanup — Header action to delete all expired tokens at once
Widgets on Resource Page
The stats and chart widgets are displayed as header widgets on the token list page (not on the dashboard):
- Stats Overview — 4 stat cards: Total Generated (with week-over-week trend), Successfully Used (with success rate), Expired Unused, Active Links. Includes sparkline mini-charts.
- Line Chart — Generated vs Used vs Failed over the configured time range (default 30 days).
Customization
Customizing Navigation via Language Files
Navigation group and label are pulled from language files by default. Publish and edit:
Then edit lang/vendor/filament-passwordless-login/en/filament.php:
Note: The fluent API (
->navigationGroup('...')) takes priority over language files when both are set.
Multilingual Support
8 languages included out of the box:
| Language | Code | Example Navigation Group |
|---|---|---|
| English | en |
Authentication |
| Spanish | es |
Autenticación |
| French | fr |
Authentification |
| German | de |
Authentifizierung |
| Dutch | nl |
Authenticatie |
| Arabic | ar |
المصادقة |
| Hindi | hi |
प्रमाणीकरण |
| Portuguese | pt |
Autenticação |
All strings are translatable — login page text, action labels, modal headings, resource columns, widget headings, status badges, navigation labels, and filter labels.
Adding a New Language
Create a new file at lang/vendor/filament-passwordless-login/{locale}/filament.php and translate all keys from the English file.
Config File Reference
Published to config/filament-passwordless-login.php:
Base Package Configuration
The Filament plugin uses spykapps/passwordless-login under the hood. Configure the base package in config/passwordless-login.php:
See the spykapps/passwordless-login README for the full list of configuration options.
Complete Setup Examples
Example 1: Magic Link Only (No Password Login)
Example 2: Password Login with Magic Link Hint
Example 3: Password Login with Magic Link Button
Example 4: Full Featured
Example 5: Minimal (Resource Only, No Login Changes)
Enum Reference
Credits
- Sanchit Patil
- All Contributors
License
The MIT License (MIT). Please see License File for more information.
All versions of filament-passwordless-login with dependencies
filament/filament Version ^4.0|^5.0
spykapps/passwordless-login Version ^1.0