glesys/butler-auth

v7.0.0 2024-05-29 06:31 UTC

README

.github/workflows/test.yml

Butler Auth

一个受 Laravel Sanctum 启发的最小化令牌认证包。 Laravel Sanctum

安装

需要一个运行中的 Laravel 应用程序和数据库连接,以及一个队列工作者和一个缓存存储,如 redis 或 memcached。

composer require glesys/butler-auth

php artisan vendor:publish --tag=butler-auth-migrations
php artisan migrate

生成令牌

  1. 在你的消费者模型上实现 Butler\Auth\Models\Contracts\HasAccessTokens
  2. 在你的消费者模型上使用 Butler\Auth\Models\Concerns\HasAccessTokens
$token = $consumer->createToken(abilities: ['*'], name: 'my token')->plainTextToken;

删除令牌

由于在获取访问令牌时发生的缓存,因此通过模型删除令牌非常重要,而不是直接在数据库中删除。

// Delete access token by ID
AccessToken::find($id)->delete();

// Delete all tokens for a consumer
$consumer->tokens->map->delete();

保护路由

参见 Laravel 文档

// If "butler" is configured as your default guard
Route::view('/protected', 'protected')->middleware('auth');

// Or specify the guard
Route::view('/protected', 'protected')->middleware('auth:butler');

认证

将令牌作为 Bearer 令牌传递到 Authorization 标头中。

测试

vendor/bin/phpunit
vendor/bin/pint --test

如何贡献

开发在 GitHub 上进行;任何使用 Pull Requests 的典型工作流程都受欢迎。在同一种精神下,我们使用 GitHub 问题跟踪器来处理所有报告(无论报告的性质、功能请求、错误等)。

所有更改都应覆盖单元测试,如果测试不可能或非常不实际,则需要在 pull request 的评论部分进行讨论。

代码标准

由于库旨在用于 Laravel 应用程序,我们鼓励代码标准遵循 上游 Laravel 实践 - 简而言之,这意味着 PSR-2PSR-4