brunoabpinto / csrf-refresh
Automatic CSRF token refresh for Laravel applications to prevent token expiration on long-lived pages
v1.0.0
2026-01-22 11:24 UTC
Requires
- php: ^8.1
- illuminate/support: ^10.0|^11.0
README
Automatic CSRF token refresh for Laravel applications to prevent token expiration on long-lived pages.
Installation
Install the package via Composer:
composer require brunoabpinto/csrf-refresh
The package will automatically register its service provider via Laravel's package auto-discovery.
Usage
Add the @csrfRefresh Blade directive to your layout file, typically in the <head> section or before the closing </body> tag:
<!DOCTYPE html> <html> <head> <meta name="csrf-token" content="{{ csrf_token() }}"> <!-- other head elements --> </head> <body> <!-- your content --> @csrfRefresh </body> </html>
How It Works
- The package registers a route at
/csrf-token/refreshthat returns a fresh CSRF token - A JavaScript file is automatically published to
public/vendor/csrf-refresh/ - The script periodically fetches a new CSRF token and updates the
<meta name="csrf-token">element - The refresh interval is calculated based on your session lifetime configuration (refreshes 50 seconds before expiration)
Publishing Assets
The JavaScript file is automatically published on first boot. To manually update the assets after a package update:
php artisan vendor:publish --tag=csrf-refresh-assets --force
Requirements
- PHP 8.1 or higher
- Laravel 10.x or 11.x
License
The MIT License (MIT). Please see License File for more information.