nanorocks / laravel-license-manager
A Laravel package for flexible license key management. Ideal for SaaS platforms, plugins, and systems that require license validation, assignment, and lifecycle management.
Fund package maintenance!
Nanorocks
Installs: 9
Dependents: 0
Suggesters: 0
Security: 0
Stars: 9
Watchers: 0
Forks: 1
Open Issues: 0
pkg:composer/nanorocks/laravel-license-manager
Requires
- php: ^8.3
- illuminate/contracts: ^11.0||^12.0
- spatie/laravel-package-tools: ^1.16
Requires (Dev)
- larastan/larastan: ^3.0
- laravel/pint: ^1.14
- nunomaduro/collision: ^8.8
- orchestra/testbench: ^10.0.0||^9.0.0
- pestphp/pest: ^4.0
- pestphp/pest-plugin-arch: ^4.0
- pestphp/pest-plugin-laravel: ^4.0
- phpstan/extension-installer: ^1.4
- phpstan/phpstan-deprecation-rules: ^2.0
- phpstan/phpstan-phpunit: ^2.0
README
A Laravel package for flexible license key management. Ideal for SaaS platforms, plugins, and systems that require license validation, assignment, and lifecycle management. This package allows you to generate, assign, validate, and manage license keys stored in your database. Includes Facade support for easy integration anywhere in your application.
Installation
Install the package via Composer:
composer require nanorocks/laravel-license-manager
Publish and run the migrations:
php artisan vendor:publish --tag="laravel-license-manager-migrations"
php artisan migrate
Publish the configuration:
php artisan vendor:publish --tag="laravel-license-manager-config"
Example config file (``):
return [ 'key_length' => 16, 'default_expiration_days' => 30, 'table_name' => 'plugin_database_newsletter_licenses', ];
Usage
Using the Service Class
use Nanorocks\LicenseManager\Services\LicenseService; $service = app(LicenseService::class); // Generate a license $license = $service->createLicense([ 'license_key' => 'TEST-1234', 'assigned_to' => 'user@example.com', 'expires_at' => now()->addDays(30), ]); // Validate a license $isValid = $service->validateLicense('TEST-1234'); // Assign a license to a user $service->assignLicense('TEST-1234', 'anotheruser@example.com'); // Deactivate a license $service->deactivateLicense('TEST-1234');
Using the Facade
use Nanorocks\LicenseManager\Facades\LicenseManager; $isValid = LicenseManager::validateLicense('TEST-1234'); LicenseManager::assignLicense('TEST-1234', 'user@example.com');
Artisan Command
Generate a license via Artisan:
php artisan license:generate --assigned-to="user@example.com" --expires-in=30 --key-length=16
Testing
Run the package tests:
composer test
Changelog
Please see CHANGELOG for detailed information on changes and updates.
Contributing
Please see CONTRIBUTING for contribution guidelines.
Security Vulnerabilities
Report any security issues via our security policy.
Credits
License
This package is open-source under the MIT License. See LICENSE for details.