mehradsadeghi/laravel-token-generator

此包已被废弃,不再维护。未建议替代包。

根据您的需求驱动和算法生成令牌。

v1.53.0 2020-07-22 04:51 UTC

This package is auto-updated.

Last update: 2021-05-22 07:05:54 UTC


README

根据您的需求驱动和算法生成令牌

安装

$ composer require mehradsadeghi/laravel-token-generator

发布配置文件

它将使用默认配置,但您可以通过发布配置文件来更改默认设置或添加自定义驱动。

$ php artisan vendor:publish

驱动程序

有 3 个可用驱动程序

  • 基本
  • 加密
  • 唯一

您可以在 config/token-generator.php 或通过 TOKEN_GENERATOR_DEFAULT 键在 .env 文件中设置默认驱动程序。

基本

它简单地生成一个随机令牌。

示例

\Mehradsadeghi\TokenGenerator\TokenGeneratorFacade::generate();

您也可以在配置文件中更改令牌的默认长度

'basic' => [
    'driver' => \Mehradsadeghi\TokenGenerator\Drivers\Basic::class,
    'options' => [
        'length' => 10
    ]
]

加密

它生成加密安全伪随机令牌。

唯一

它根据给定的算法生成散列(唯一)令牌。您可以在 unique 驱动程序数组的 options 索引中指定算法。

'unique' => [
    'driver' => \Mehradsadeghi\TokenGenerator\Drivers\Unique::class,
    'options' => [
        'alg' => 'sha256'
    ]
]

示例

\Mehradsadeghi\TokenGenerator\TokenGeneratorFacade::generate('your input');

辅助函数

token() 辅助函数和 TokenGeneratorFacade 可以互换使用。例如

token()->generate();

动态切换驱动程序

您可以在运行时动态切换生成器驱动程序

token()->generate(); // default driver
token()->driver('crypto')->generate(); // crypto driver

同样

TokenGeneratorFacade::driver('crypto')->generate();

扩展令牌生成器

您可以通过几个步骤设置自己的自定义驱动程序。

  1. 将您的配置添加到 token-generator 配置文件中
return [

    'default' => env('TOKEN_GENERATOR_DEFAULT', 'basic'),

    'drivers' => [

        ...

        'new_driver' => [
            'driver' => Path\To\Your\CustomGenerator::class,
            'options' => [
                'length' => 20
            ]
        ]
    ]
];

请注意,options 是可选的。

  1. 创建 CustomGenerator.php
use Mehradsadeghi\TokenGenerator\TokenGeneratorContract;

class CustomGenerator implements TokenGeneratorContract
{
    private $length;

    public function __construct($length)
    {
        $this->length = $length;
    }

    public function generate(): string
    {
        // your logic to generate token
    }
}
  1. 最后
token()->driver('new_driver')->generate();