zendrop/laravel-jwt

v2.13 2024-09-26 11:57 UTC

README

本软件包提供了一种简单的方法,在Laravel应用程序中使用JWT(JSON Web Tokens)作为身份验证保护。

安装

需要软件包 zendrop/laravel-jwt

composer require zendrop/laravel-jwt

设置

安装后,您需要在 config/app.php 中添加服务提供者

'providers' => [
    ...
    Zendrop\LaravelJwt\LaravelJwtAuthServiceProvider::class,
]

并使用命令发布软件包配置

php artisan vendor:publish

别忘了运行迁移

php artisan migrate

配置

在配置文件夹中修改生成的 config/laravel-jwt.php 以满足您的需求

  1. 算法:设置您希望使用的JWT算法(默认为HS256)。
  2. 密钥:指定编码和解码密钥。默认情况下,它使用Laravel .env文件中的APP_KEY。
  3. 有效载荷:为JWT配置发行者(iss)和有效期(ttl)。
  4. 黑名单驱动器:指定用于处理黑名单令牌的驱动程序(默认为数据库驱动程序)。

使用方法

HasJwt特质

在您的User模型或任何其他可认证模型中包含HasJwt特质

use Zendrop\LaravelJwt\HasJwt;

class User extends Authenticatable {
    use HasJwt;
    ...
}

这提供了makeJwt()方法来为用户生成JWT。

JWT保护

在您的auth.php配置文件中,您可以定义JWT保护器

'guards' => [
    'web' => [
        'driver' => 'session',
        'provider' => 'users',
        ...
    ],
    'api' => [
        'driver' => 'laravel-jwt', // Use the JWT guard
        'provider' => 'users', 
    ],
    ...
]

对于有状态的JWT

'guards' => [
    'web' => [
        'driver' => 'laravel-jwt-cookie',
        'provider' => 'users', 
    ],
]