【发布时间】:2021-04-26 04:38:07
【问题描述】:
我按照以下指南制作了一个身份验证 API,以及一个使用第一个身份验证的 API。我所做的一切都完全相同,但我仍然收到此错误:
InvalidArgumentException:未定义身份验证保护 [jwt]。在第 84 行的文件夹/to/project/vendor/laravel/framework/src/Illuminate/Auth/AuthManager.php 中
我遵循的指南是:https://medium.com/swlh/build-jwt-authentication-between-multiple-api-with-laravel-fbd03352aaa3
我的config/auth 看起来像这样:
'defaults' => [
'guard' => 'api',
'passwords' => 'users',
],
'guards' => [
'web' => [
'driver' => 'session',
'provider' => 'users',
],
'api' => [
'driver' => 'jwt',
'provider' => 'users',
// 'hash' => false,
],
],
然后我的app/guard/JWTGuard.php 看起来与指南中的完全一样。
我的routes/api.php 如下所示:
Route::middleware('auth:jwt')->resource('projects', ProjectController::class);
以前有人遇到过这个问题并且知道如何解决吗?
【问题讨论】:
-
我不熟悉这个问题,特别是在 Laravel 中,但这是所有平台中的常见问题。要使 jwt CORS 保护起作用,它必须接收一个 JWT/CORS 令牌,该令牌会在下一个请求中发回。正常的解决方案是:或者在您的页面中定义一个特定字段(名称很重要,通常是 _cors 或类似名称)或停用 CORS 保护。
-
是cors吗?真的不认为这与 cors 错误有关
-
无法确定,但该消息让我怀疑这一点。您对此有几个问题,例如stackoverflow.com/questions/54477420/…
-
我会调查的
-
如果你找到了确切的解决方案,别忘了回答你自己的问题,以帮助未来的用户!