首页 > 解决方案 > 作曲家更新后Laravel Passport未经身份验证

问题描述

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

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

我在用

我正在尝试使用我自己的 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,
        ],
    ]
]

引导程序.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大约十几个我现在无法处理的其他事情。

任何帮助,将不胜感激。

标签: laravelapilaravel-passport

解决方案


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

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


推荐阅读