hungdx / auth-token
使用令牌为 Laravel 框架提供身份验证的驱动程序。
1.0.3
2021-01-20 09:12 UTC
Requires
- php: ^7.1.3|^8
- ext-json: *
- laravel/framework: ^5.8|^6|^7|^8
Requires (Dev)
- friendsofphp/php-cs-fixer: ^2.17
This package is auto-updated.
Last update: 2024-09-29 05:29:20 UTC
README
使用令牌为 Laravel 身份验证提供驱动程序
故事
我们需要一种方法来对 web 和 api 进行身份验证。Laravel 支持以下驱动程序 session (SessionGuard)、token (TokenGuard)、request (RequestGuard),但它们还不够强大。
- SessionGuard:无法用于 api。在 Web 上,如果有相同的用户和记住我开启 -> 只有一个设备可以使用此功能。
- TokenGuard:它不是为 Web 设计的,也不支持同时多设备登录。
- RequestGuard:尚未检查
对于 api,我们已经有 JWT,为什么不使用它呢?
JWT 非常容易创建和验证令牌,但它不足以管理令牌。当您想要删除之前创建的令牌时,除非令牌过期,否则没有方法可以做到。
此驱动程序有哪些功能?
- 支持 web、api 或其他任何目的。
- 支持同一时间内为用户开启多设备登录。
- 通过良好的配置,我们可以统计用户/设备的登录数量(将刷新寿命设置得足够小,并统计 user_tokens 表中的记录)
- 所有令牌都存储在数据库中。要注销设备,只需删除该设备的令牌记录。
要求
"php": "^7.1.3|^8",
"laravel/framework": "^5.8|^6|^7|^8"
安装
使用 composer 安装此包
composer require hungdx/auth-token
Laravel
将 AuthTokenProvider 添加到 config/app.php
中的 providers 数组
HungDX\AuthToken\AuthTokenProvider::class,
创建 user_tokens
表
php artisan migrate --path="vendor/hungdx/auth-token/migrations"
Lumen
对于 Lumen,在 bootstrap/app.php
中注册不同的 Provider
$app->register(HungDX\AuthToken\AuthTokenProvider::class);
要更改配置,将文件复制到您的配置文件夹中并启用它
$app->configure('auth-token');
创建 user_tokens
表
php artisan migrate --path="vendor/hungdx/auth-token/migrations"
用法
在 bootstrap/auth.php
的 guards
部分,将驱动程序更改为 auth-token
。例如
'guards' => [ 'web' => [ 'driver' => 'auth-token', 'provider' => 'users', ], 'api' => [ 'driver' => 'auth-token', 'provider' => 'users', ], ],
配置
如果您想自定义配置,请运行命令
php artisan vendor:publish --provider="HungDX\AuthToken\AuthTokenProvider"
文件 config/auth-token.php
return [ 'lifetime' => [ 'expired' => 7 * 24 * 3600, // Lifetime of token before expired. Default 7 days 'refresh' => 3600, // The minimum seconds before changing the token. Default 1 hour ], 'token_field' => [ 'header' => 'Authorization', // Set [false/null/empty] to disable send token to response header 'cookie' => 'X-Auth-Token', // Set [false/null/empty] to disable send token to response cookie ], 'autoload_middleware' => true, // Auto add to middleware HungDX\AuthToken\AuthTokenMiddleware to every request ];
变更
1.0.3 (2021-01-20)
- 修复 Laravel 5.8 中的迁移
1.0.2 (2020-12-30)
- 支持 PHP 7.1.3、Laravel 5.8
1.0.1 (2020-12-25)
- 支持记住标志。当记住我开启时,令牌永远不会过期,直到注销
- 支持 PHP 7.2
- 修复 phpcs
- 修复迁移
1.0.0 (2020-12-24)
- 为 laravel/lumen 的身份验证添加 auth-token 驱动程序
- 自动将中间件添加到所有路由组