Create temporal random string key in database for any purposes. Key will be removed after expiration time or after max retrieve attempts.
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();
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();
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');