LaravelPackages.net
Acme Inc.
Toggle sidebar
aldemco/secrets

The package implements the functionality of creating, storing, checking secrets

22
0
1.1
About aldemco/secrets

aldemco/secrets is a Laravel package for the package implements the functionality of creating, storing, checking secrets. It currently has 0 GitHub stars and 22 downloads on Packagist (latest version 1.1). Install it with composer require aldemco/secrets. Discover more Laravel packages by aldemco or browse all Laravel packages to compare alternatives.

Last updated

Secrets

Latest Version on Packagist Licence MIT Test Status

This package allows you to generate, store and verify secrets for many purposes, such as verifying a phone number during registration or authorization via SMS.

Installation

You can install the package via composer:

composer require aldemco/secrets

You can publish and run the migrations with:

php artisan vendor:publish --tag="secrets-migrations"
php artisan migrate

if you want to change the default table name, then publish the config first

You can publish the config file with:

php artisan vendor:publish --tag="secrets-config"

This is the contents of the published config file:

return [
    'table' => 'secrets',
    'auto_clearing' => false,
    'auto_clearing_dayly_at' => '01:00',
    'length' => 6,
    'secret_generator' => Aldemco\Secrets\SecretGenerator::class,
    'secret_hasher' => Aldemco\Secrets\SecretHasher::class,
    'is_crypt' => false,
    'attemps' => 3,
    'store_until_minutes' => 50000,
    'valid_until_minutes' => 10,
    'valid_from_minutes' => 0,
    'multiple_limit' => 10,
];

Basic usage

Create secret

use Aldemco\Secrets\Secrets;

/**
 * Full
 */
    Secrets::create(
        context:'Verify',
        contextId: null,
        owner: 'User',
        ownerId: 1 )
            ->length(6)
            ->setStoreUntil(Carbon\Carbon::now()->addDay(1))
            ->setValidUntil(Carbon\Carbon::now()->addMinutes(10))
            ->setAttemps(5)
            ->withInterval(60)
            ->genSecretStr(new Aldemco\Secrets\SecretGenerator)
            ->genCustomSecret(function(){
                return \Str::UUID()->toString();
            })
            ->encrypt(new Aldemco\Secrets\SecretHasher)
            ->save();

/**
 * Minimal
 */
Secrets::create()->save();

Verify secret

use Aldemco\Secrets\Secrets;

/**
 * Full
 */
Secrets::check(
    inputSecret: '112544',
    context:'Verify',
    owner: 'User',
    ownerId: 1)
        ->setEncrypt(new Aldemco\Secrets\SecretHasher)
        ->setUnlimitedAttemps()
        ->allowMultiple()
        ->setDissalowSuccessTimestamp()
        ->setUnlimitedAttemps()
        ->removeOnSuccess()
        ->verify()
        ->getResult();

/**
 * Minimal
 */

Secrets::check(inputSecret: '112544')->verify();

Commands

select: all used unactive withoutAttemps expired

php artisan secrets:clear {select} {context?}

Installation

You can install the package via composer:

composer require aldemco/secrets

Testing

composer test

License

The MIT License (MIT). Please see License File for more information.

Comments