lumen升级到8 jwt报错 Tymon\JWTAuth\Blacklist::__construct() must be an instance of Tymon\JWTAuth\Contracts\Providers\Storage null given
时间: 2024-09-27 12:12:22 浏览: 49
Lumen升级到8版本并集成JWT时遇到`Tymon\JWTAuth\Blacklist::__construct()`构造函数错误,通常是由于JWT包的配置问题导致的。Laravel JWT (Tymon\JWTAuth) 需要一个存储黑名单令牌的服务提供者,但在这个过程中没有正确地实例化或配置。
解决这个问题的步骤通常包括:
1. 检查 `config/jwt.php` 文件,确保 `blacklist` 部分配置了有效的存储驱动,如数据库、内存或者文件系统。例如:
```php
'providers' => [
//...
'blacklist' => [
'driver' => env('JWT_BLACKLIST_DRIVER', 'database'), // 可能需要设置为 'database' 或 'file'
'model' => App\Models\BlacklistToken::class, // 如果使用数据库,指定模型类
],
]
```
2. 确保你已经安装了相应的存储驱动的依赖。如果是数据库驱动,可能需要运行 `composer require tymon/jwt-auth database` 来安装。
3. 如果使用的是数据库驱动,确认`App\Models\BlacklistToken`模型存在,并且其对应的迁移文件已经应用到数据库。
4. 如果是其他非默认驱动,比如文件系统,你需要创建一个实现了`Tymon\JWTAuth\Contracts\Providers\Storage`接口的类,并按照文档配置路径。
如果以上步骤都检查过了还是出现问题,可能是配置冲突或者服务注册没生效,可以尝试重启Lumen容器,或者删除缓存后重新生成配置文件试试。
阅读全文