hungdx/auth-token

使用令牌为 Laravel 框架提供身份验证的驱动程序。

1.0.3 2021-01-20 09:12 UTC

This package is auto-updated.

Last update: 2024-09-29 05:29:20 UTC


README

使用令牌为 Laravel 身份验证提供驱动程序

故事

我们需要一种方法来对 webapi 进行身份验证。Laravel 支持以下驱动程序 session (SessionGuard)token (TokenGuard)request (RequestGuard),但它们还不够强大。

  • SessionGuard:无法用于 api。在 Web 上,如果有相同的用户和记住我开启 -> 只有一个设备可以使用此功能。
  • TokenGuard:它不是为 Web 设计的,也不支持同时多设备登录。
  • RequestGuard:尚未检查

对于 api,我们已经有 JWT,为什么不使用它呢?

JWT 非常容易创建和验证令牌,但它不足以管理令牌。当您想要删除之前创建的令牌时,除非令牌过期,否则没有方法可以做到。

此驱动程序有哪些功能?

  • 支持 webapi 或其他任何目的。
  • 支持同一时间内为用户开启多设备登录。
  • 通过良好的配置,我们可以统计用户/设备的登录数量(将刷新寿命设置得足够小,并统计 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.phpguards 部分,将驱动程序更改为 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 驱动程序
  • 自动将中间件添加到所有路由组