【问题标题】:Laravel 5.8 Auth guard [api] is not definedLaravel 5.8 Auth guard [api] 未定义
【发布时间】:2025-12-26 02:15:16
【问题描述】:

当我为我的控制器使用 auth api guard 时,我遇到了以下异常

未定义身份验证保护 [api]

当我在请求标头中删除授权时,我的控制器工作是正确的,但是当我添加授权并接受请求标头时,我收到此错误。

我的路线:

Route::group(['prefix' => 'category','middleware' => 'auth:api'], function () {
  Route::post('add', 'Api\CategoryController@addCategory');
  Route::post('edit', 'Api\CategoryController@editCategory');
  Route::get('get/{id}', 'Api\CategoryController@getCategory');
  Route::get('get', 'Api\CategoryController@getCategory');
  Route::get('delete', 'Api\CategoryController@deleteCategory');
});

auth.php 文件:

 'guards' => [
    'web' => [
        'driver' => 'session',
        'provider' => 'users',
    ],

    'api' => [
        'driver' => 'passport',
        'provider' => 'users',
        'hash' => false,
    ],
],

我将 Passport::routes() 添加到 AuthServiceProvider.php 并迁移了护照迁移并安装了护照以创建护照客户端访问

我认为一切正常,但出现错误

【问题讨论】:

  • 这是answer 帮助你吗?
  • 你能试试清除配置缓存吗
  • @Joseph 哪个答案?
  • @AWSPS 我清除缓存和它的工作,但得到消息未经身份验证!我的令牌是真的

标签: php laravel laravel-5.8 laravel-passport


【解决方案1】:

您需要清除配置缓存才能生效。 对于 Unauthenticated 这意味着令牌无效或未正确传递

https://laravel.com/docs/5.7/passport#passing-the-access-token

【讨论】: