SPID authentication plugin for Filament based on italia/spid-laravel
offline-agency/filament-spid is a Laravel package for spid authentication plugin for filament based on italia/spid-laravel.
It currently has 1 GitHub stars and 31 downloads on Packagist (latest version 0.1.8).
Install it with composer require offline-agency/filament-spid.
Discover more Laravel packages by offline-agency
or browse all Laravel packages to compare alternatives.
Last updated
SPID (Sistema Pubblico di Identità Digitale) authentication plugin for Filament based on italia/spid-laravel.
This package allows you to integrate SPID authentication into your Filament admin panels, enabling Italian public administration identity management.

You can install the package via composer:
composer require offline-agency/filament-spid
Publish the configuration file:
php artisan vendor:publish --tag="filament-spid-config"
Publish and run the migrations:
php artisan vendor:publish --tag="filament-spid-migrations"
php artisan migrate
Optionally, you can publish the views:
php artisan vendor:publish --tag="filament-spid-views"
To publish the SPID AGID logo images to your public directory:
php artisan vendor:publish --tag="filament-spid-images"
This will copy the SPID AGID logo images (both PNG and SVG formats) to:
public/vendor/filament-spid/images/public/images/The images will be accessible at:
/vendor/filament-spid/images/spid-agid-logo.png/vendor/filament-spid/images/spid-agid-logo.svgAlternatively, you can use the provided script in the package root:
./publish-images.sh
First, configure the base SPID Laravel package. Follow the italia/spid-laravel documentation to:
Add the following fields to your users table migration (if not already published):
$table->string('fiscal_code')->unique()->nullable();
$table->json('spid_data')->nullable();
Register the plugin in your Filament Panel Provider:
use OfflineAgency\FilamentSpid\SpidPlugin;
public function panel(Panel $panel): Panel
{
return $panel
->default()
->id('admin')
->path('admin')
->plugin(
SpidPlugin::make()
->spidButtonLabel('Entra con SPID')
->providers([
'arubaid',
'infocertid',
'lepidaid',
'namirialid',
'posteid',
'sielteid',
'spiditalia',
'timid',
'teamsystemid'
])
);
}
SpidPlugin::make()
->loginView('your-custom-view')
SpidPlugin::make()
->loginRoute('custom.spid.login')
->logoutRoute('custom.spid.logout')
->acsRoute('custom.spid.acs')
->metadataRoute('custom.spid.metadata')
SpidPlugin::make()
->showSpidButton(false)
SpidPlugin::make()
->spidButtonLabel('Login con SPID')
->spidButtonIcon('heroicon-o-shield-check')
SpidPlugin::make()
->providers(['posteid', 'arubaid', 'infocertid'])
The config/filament-spid.php configuration file allows you to customize:
return [
'user_model' => \App\Models\User::class,
'redirect_after_login' => '/admin',
'spid_level' => 'https://www.spid.gov.it/SpidL2',
];
Your User model should have these fields:
protected $fillable = [
'name',
'email',
'fiscal_code',
'spid_data',
// ... other fields
];
protected $casts = [
'spid_data' => 'array',
];
SPID supports three security levels:
SpidL1 - Level 1 (Username and password)SpidL2 - Level 2 (Username, password, and OTP) - DefaultSpidL3 - Level 3 (Smart card or hardware token)Configure the level in your config file or when calling the login:
route('spid.login', ['provider' => 'posteid', 'level' => 'SpidL2'])
composer test
Run tests with coverage:
composer test-coverage
composer format
composer analyse
Please see CHANGELOG for more information on what has changed recently.
Please see CONTRIBUTING for details.
Please review our security policy on how to report security vulnerabilities.
For support and questions:
The MIT License (MIT). Please see License File for more information.
Offline Agency is a web development agency based in Italy, specializing in Laravel and Filament applications.