aldemco/secrets

该包实现了创建、存储和检查秘密的功能

1.1 2023-08-15 19:08 UTC

This package is auto-updated.

Last update: 2024-09-15 22:06:58 UTC


README

Latest Version on Packagist Licence MIT Test Status

此包允许您为多种目的生成、存储和验证秘密,例如在注册或通过短信授权时验证电话号码。

安装

您可以通过composer安装此包

composer require aldemco/secrets

您可以使用以下命令发布和运行迁移

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

如果您想更改默认的表名,则首先发布配置

您可以使用以下命令发布配置文件

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

这是已发布配置文件的内容

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,
];

基本用法

创建秘密

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();

验证秘密

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();

命令

选择: all used unactive withoutAttempts expired

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

安装

您可以通过composer安装此包

composer require aldemco/secrets

测试

composer test

许可证

MIT许可证(MIT)。有关更多信息,请参阅许可证文件