consilience/laravel-api-token-generator

Artisan 命令用于为 Laravel 应用生成 API 令牌

1.1.1 2019-11-27 15:11 UTC

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)