【问题标题】:How to fix following error: InvalidArgumentException: Auth guard [jwt] is not defined如何修复以下错误:InvalidArgumentException: Auth guard [jwt] is not defined
【发布时间】: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/…
  • 我会调查的
  • 如果你找到了确切的解决方案,别忘了回答你自己的问题,以帮助未来的用户!

标签: php laravel jwt


【解决方案1】:

问题出在routes/api.php。中间件不应该是“auth:jwt”,而是“auth:api”。这对我有用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-06-11
    • 2012-08-11
    • 2019-11-27
    • 1970-01-01
    • 2022-11-23
    • 1970-01-01
    • 2021-11-13
    • 1970-01-01
    相关资源
    最近更新 更多