consilience / laravel-api-token-generator
Artisan 命令用于为 Laravel 应用生成 API 令牌
This package is auto-updated.
Last update: 2024-08-28 02:09:06 UTC
README
Laravel 默认支持 API 令牌认证。在开发阶段,以及内部(机器到机器)API 中,能够为用户生成令牌非常有用。此包提供了一个简单的 Artisan 命令来生成令牌。
令牌将通过 sha256
算法进行哈希处理。
此包不提供 api_token
列的数据库迁移。这需要您自己处理。
安装
使用 Composer 安装
composer require consilience/laravel-api-token-generator
Lumen
对于 Laravel,服务提供者和配置文件会自动注册。对于 Lumen,需要在 bootstrap/app.php
中添加额外的条目。
服务提供者已注册
$app->register(Consilience\Laravel\ApiTokenGenerator\Providers\ServiceProvider::class);
如果配置文件已发布,请添加
$app->configure('apitokens');
然后复制 apitokens.php
cp vender/consilience/laravel-api-token-generator/apitokens.php config/apitokens.php
发布资源
php artisan vendor:publish --provider="Consilience\ApiTokenGenerator\ApiTokenGeneratorServiceProvider"
配置
您可以根据需要更改将持有 API 令牌的模型。默认情况下,这将是 App\User
,但您可能希望使用 App\Models\User
等。
'model' => App\Models\User::class,
name_field
是一个可选的列,可以用来唯一标识一个模型实例,而不是使用 id
列
'name_field' => 'name'
默认情况下,令牌列将是 api_token
,但可以进行更改
'token_field' => 'my_api_token_column',
注意:此包不会将 API 令牌列添加到您的用户表中。这是一个其他包或您的应用程序部署的步骤。
用法
为用户生成新的令牌或替换现有令牌
php artisan apitoken:generate --id=123 --generate
php artisan apitoken:generate --id=5fd40c23-fcda-4bdc-a07c-f2bfeb56bb03 --generate
id
通常是一个整数,但如果 id
是如 UUID 这样的字符串,某些情况也应能正常工作。
生成的令牌只能显示一次。为了安全保存到模型中,它会被加密,因此如果不能立即记录,则无法恢复。
如果用户通过另一列唯一标识,则可以使用该列来标识模型实例并更新新的令牌
php artisan apitoken:generate --name=bloggs@example.com --generate
而不是生成随机令牌,您可以设置自己的显式令牌。使用 --token=
选项来替代 --generate
选项。
php artisan apitoken:generate --id=123 --token=d8a928b2043db77e340b523547bf16cb4aa483f0645fe0a290ed1f20aab76257
如果您在使用自动化部署,可能希望使用 --no-ansi
选项来删除控制字符。
--check
选项会告诉您实例是否已设置令牌
$ php artisan apitoken:generate --id=11 --check App\Models\User::11 has no API token set No explicit token supplied (--token=) and no token to be generated (--generate)