mehradsadeghi / laravel-token-generator
此包已被废弃,不再维护。未建议替代包。
根据您的需求驱动和算法生成令牌。
v1.53.0
2020-07-22 04:51 UTC
Requires
- php: ^7.1
- laravel/framework: 5.*|6.*|7.*
Requires (Dev)
- mockery/mockery: *
- orchestra/testbench: ^4.0
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();
扩展令牌生成器
您可以通过几个步骤设置自己的自定义驱动程序。
- 将您的配置添加到
token-generator
配置文件中
return [ 'default' => env('TOKEN_GENERATOR_DEFAULT', 'basic'), 'drivers' => [ ... 'new_driver' => [ 'driver' => Path\To\Your\CustomGenerator::class, 'options' => [ 'length' => 20 ] ] ] ];
请注意,options
是可选的。
- 创建
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 } }
- 最后
token()->driver('new_driver')->generate();