我正在尝试使用Lumen + JWT
在我的API中实现JWT令牌。我正在使用此JWT Library,我已经设置了它,但是当我想使用JWTAuth::attempt($credentials)
验证传递时,我会收到下一个错误
ErrorException in AuthManager.php line 16:
Missing argument 1 for Illuminate\Auth\AuthManager::createDriver(), called in /home/admin/web/mkopilka.ru/public_html/api/referral/vendor/illuminate/support/Manager.php on line 87 and defined
我知道问题在哪里,但无法弄清楚如何解决它,因为我不太了解框架的内部结构。
我对JWT如何对用户进行身份验证有疑问(检查数据库中的凭据,因为我可以说它使用jwt.php
中提供的模型类,并使用以下行'user' => 'App\Models\User'
默认情况下'user' => 'App\User'
因此,即使我在此文件中更改了用户模型,我也收到了下一个错误
vendor/illuminate/auth/EloquentUserProvider.php line 126:
Class '\App\User' not found
我想并决定添加带有后续内容的config / auth.php文件
return [
'model' => 'App\Models\User'
];
现在我得到了第一个例外。
有什么问题我可以告诉我已经覆盖了auth配置文件中的所有参数。
Aslo我想知道我在哪里可以找到(除了源代码,需要花费大量时间来理解它)解释JWTAuth::attempt
如何工作?
感谢。
答案 0 :(得分:2)
我自己也有同样的问题,偶然发现了这个问题。
解决方案是将'driver' => 'eloquent'
添加到您创建的 auth.php 文件中。
答案 1 :(得分:2)
我在从Laravel 4.1升级到4.2时遇到了同样的问题(我认为主要是因为我更新了所有文件并尝试在之后进行作曲家更新)。
对我来说,以下工作(如恢复相关的更新步骤):
将驱动程序,模型和表添加到config / auth.php主数组(另外到provider子数组中已存在的那个):
<?php
return [
'driver' => 'eloquent',
'model' => App\User::class,
'table' => 'users',
// ...
为防止错误 Artisan:未定义明确编译的命令已向服务提供商读取Illuminate\Foundation\Providers\ArtisanServiceProvider
<?php
return [
// ...
'providers' => [
/*
* Laravel Framework Service Providers...
*/
Illuminate\Foundation\Providers\ArtisanServiceProvider::class,
// ...
执行更新(composer update
)并通过删除添加的行来恢复前两个步骤。