think.studio / laravel-temporal-key
Create and retrieve random string key in database for any purposes.
1.1.0
2023-08-20 06:21 UTC
Requires
- php: ^8.1
- illuminate/support: ^9.0|^10.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.16
- orchestra/testbench: ^8.5
- phpunit/phpunit: ^10.1
- psalm/plugin-laravel: ^2.8
- vimeo/psalm: ^5.11
README
Create temporal random string key in database for any purposes. Key will be removed after expiration time or after max retrieve attempts.
Installation
Install the package via composer:
composer require think.studio/laravel-temporal-key
Optionally you can publish the config file with:
php artisan vendor:publish --provider="TemporalKey\ServiceProvider" --tag="config"
Migrate database
php artisan migrate
Add prune command to console kernel
$schedule->command('temporal-key:prune')->everyTenMinutes();
Usage
Default usage
Create key:
$key = \TemporalKey\Manager\TmpKey::create()->key() // Customize default expiration datetime $key = \TemporalKey\Manager\TmpKey::create(validUntil: \Carbon\Carbon::now()->addDay())->key() // Add metadata $key = \TemporalKey\Manager\TmpKey::create(['email' => 'user@email.com'])->key() // Customise custom maximal retrieve count. $key = \TemporalKey\Manager\TmpKey::create(usageMax: 22)->key()
Retrieve key
$temporalKey = \TemporalKey\Manager\TmpKey::find('testkey'); $temporalKey?->key(); $temporalKey?->meta();
Crete custom key type
use TemporalKey\Manager\TmpKey; class ImagePreviewTmpKey extends TmpKey { public static string $type = 'image-preview'; public static int $defaultValidSeconds = 60 * 60; public static int $defaultUsageMax = 0; // unlimited } $key = ImagePreviewTmpKey::create()->key() $temporalKey = ImagePreviewTmpKey::find('testkey');