作曲家更新后未经身份验证的Laravel Passport

时间:2020-09-15 07:16:22

标签: laravel api laravel-passport

我已经在此应用程序中工作了几年,在进行一些更新时,我的护照认证失败了。我将护照从7.2更新到7.5,但它坏了。然后,我更新为护照8.5,但仍然无法使用。

我收到401 {error: "Unauthenticated."}错误。

我正在使用

  • Laravel 7.28.1
  • 护照8.5.0
  • Laravel代客
  • PHP 7.3

我正在尝试使用自己的api,并且遵循了我在互联网上找到的所有解决方案,但是没有骰子。我可以使用邮递员通过访问令牌访问路由,如果我将路由移至auth:api中间件之外,但是我想访问auth:api

内的路由

这是我当前的配置。

AuthServiceProvider.php

public function boot()
{
    Passport::routes();
}
protected $middlewareGroups = [
        'web' => [
            \App\Http\Middleware\EncryptCookies::class,
            ... other middleware
            \Laravel\Passport\Http\Middleware\CreateFreshApiToken::class,
        ],

        'api' => [
            'throttle:60,1',
            'bindings',
        ],
    ];

在auth.php中

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

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

bootstrap.js

window.axios = require('axios');

window.axios.defaults.headers.common = {
    'X-CSRF-TOKEN' : document.querySelector('meta[name="csrf-token"]').getAttribute('content'),
    'X-Requested-With': 'XMLHttpRequest'
};

在component.vue文件中

axios.get('/api/users?page=' + page).then((response) => {
    //
})

我已经清除了配置并运行了 php artisan optimize:clear和其他我现在不知道的其他事情。

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

我在问题发布之时(2020年9月上旬)开始就用Laravel 7和Passport恰好遇到了这个问题。我无法查明问题的确切原因,但不得不冻结我的依赖项以避免问题。在我看来,调试时,这不是Laravel或Passport的直接问题,而是子依赖项。

只需升级到Laravel 8和Passport v10.0.1,现在一切恢复正常。