dariusiii/token

Laravel 独特令牌生成器

v5.0.0 2023-02-16 17:40 UTC

This package is auto-updated.

Last update: 2024-09-16 20:46:57 UTC


README

Laravel

Laravel 独特令牌生成器

// Generate unique Token From Database.
$new_token = $token->Unique($table_name, $column_name, $size);

安装

使用 Composer 在项目根目录中安装此包。

$ composer require dariusiii/token

将服务提供者添加到 config/app.php 中的 providers 数组中,或者在 Laravel 5.5 中,可以通过自动包发现来完成此操作。

DariusIII\Token\TokenServiceProvider::class

如果您想使用 facade,请将引用添加到 config/app.php 中的别名数组中。

'Token'=>\DariusIII\Token\Facades\Facade::class

文档

★ 新令牌特质 ★

在模型中设置

要使用新的令牌特质,需要在包含令牌列的模型中进行一些更改。

单列令牌
单个令牌特质允许您为表中的单个列生成令牌
  • 要使用单列令牌,您需要在模型中添加 use DariusIIIToken;
  • 在数据库中,我们使用默认列 dt_token,要替换为您的列名,请添加 protected $DT_Column='column_name'; 到模型中。
  • 令牌设置默认为这个值 ['type' => DT_Unique, 'size' => 40, 'special_chr' => false],要替换为自定义设置,请添加 protected $DT_settings=['type' => DT_Unique, 'size' => 60, 'special_chr' => false]; 到模型中。
  • 请注意,我们使用自定义常量来表示我们的令牌类型
  Const DT_Unique = 'Unique'; 
  Const DT_UniqueNum = 'UniqueNumber'; 
  Const DT_UniqueStr = 'UniqueString';
  Const DT_Random = 'Random';
  Const DT_RandomNum = 'RandomNumber';
  Const DT_RandomStr = 'RandomString';
  • 在准备模型以在您的代码中使用我们的特质令牌之后,您可以像这样设置令牌和自定义列以及设置
           $user=User::first();
           $user->setToken();
           $user->save();
  • 您可以在 setToken(); 函数中使用自定义设置,如下所示
           $user=User::first();
           $user->setToken(DT_UniqueStr,100,false);
           $user->save();
  • 您可以在该函数中设置自定义列
           $user=User::first();
           $user->setToken(DT_UniqueStr,100,false,'column_name');
           $user->save();
  • 要获取带有令牌的模型查询,您可以使用 WithToken()$user=User::WithToken()->get();
  • 要获取不带令牌的模型查询,您可以在 WithToken() 中使用标志 false$user=User::WithToken(false)->get();
多列令牌
多令牌允许您为同一表中的多列生成令牌
  • 要使用多列令牌,您需要在模型中添加 use DariusIIIMultiToken;
  • 默认情况下,列设置未设置,因此您需要在模型中创建自定义设置
  protected $DMT_columns=[
        'unique_id'=>['type'=>DT_Unique,'size'=>60,'special_chr'=>false],
        'unique_uid'=>['type'=>DT_Unique,'size'=>30,'special_chr'=>false],
    ];
  • 请注意,我们使用自定义常量来表示我们的令牌类型
      Const DT_Unique = 'Unique'; 
      Const DT_UniqueNum = 'UniqueNumber'; 
      Const DT_UniqueStr = 'UniqueString';
      Const DT_Random = 'Random';
      Const DT_RandomNum = 'RandomNumber';
      Const DT_RandomStr = 'RandomString';
    • 在准备模型以在您的代码中使用我们的特质多令牌之后,您可以使用一个函数来设置令牌
               $user=User::first();
               $user->setTokens();
               $user->save();

★ 旧方法 ★

生成唯一令牌

使用此包,您可以通过使用 unique($table_name,$column_name,$size) 函数生成不重复于数据库中的唯一令牌。其中 $table_name 是数据库中的表名,$column_name 是表中的列名,$size 是令牌大小。

生成唯一字符串令牌

使用与唯一令牌相同签名的函数 UniqueString($table_name,$column_name,$size) 生成唯一字符串令牌。

生成唯一整数令牌

使用与唯一令牌相同签名的函数 UniqueNumber($table_name,$column_name,$size) 生成唯一整数令牌。

生成随机令牌

使用函数 Random($size) 生成随机令牌,其中 $size 是令牌长度的尺寸。

生成随机整数令牌

使用函数 RandomNumber($size) 生成随机整数令牌,其中 $size 是令牌长度的尺寸。

生成随机字符串令牌

使用函数 RandomString($size) 生成随机字符串令牌,其中 $size 表示令牌长度。

特殊字符

使用 true 允许在您的令牌中使用特殊字符,例如在所有函数中使用 !@#$%^&*(),就像 Random($size,true)

示例

这里您可以看到如何简单使用此包的一个示例。

唯一令牌

// Generate unique token not rebeated in database table with column name 
Token::Unique($table_name, $column_name, 10 );
//Result: fCWih6TDAf


// Generate unique integer token not rebeated in database table with column name
Token::UniqueNumber($table_name, $column_name, 10 );
//Result: 9647307239


// Generate unique string token not rebeated in database table with column name
Token::UniqueString($table_name, $column_name, 10 );
//Result: SOUjkyAyxC


//You can use special characters just add "true" to the function
Token::Unique($table_name, $column_name, 10,true );
//Result: H@klU$u^3z

随机令牌(非唯一)

$size=10;
// Generate random token 
Token::Random($size);

// Generate random integer token
Token::RandomNumber($size);

// Generate random string token
Token::RandomString($size);

//You can use special characters just add "true" to the function
Token::Random($size,true);

许可证

MIT © Mustafa Khaled