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

v1.0.0 2025-09-01 22:33 UTC

This package is auto-updated.

Last update: 2025-10-01 23:04:33 UTC


README

Laravel PHP License Latest Stable Version

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.