laravel-temporal-key maintained by think.studio
Laravel temporal key.
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');



