Laravel 护照 - 中间件 client_credentials 不记名令牌不起作用

问题描述

我有一个 Laravel 项目,使用 Passport Client Credentials 来获取 Bearer Tokens, 我使用

创建客户端ID和秘密ID
PHP artisan passport:client --personal

然后得到

client id & secret id

并像这样从邮递员那里获取承载/访问代码

bearer code

但是在使用这个裸露但不工作的调用其他 api 之后

Route::middleware('client_credentials')->post('/test',[ApiController::class,'va_bills']);

输出只是

{
    "message": "Unauthenticated."
}

但是如果我将路由更改为闭包函数,它的工作方式如下

Route::middleware('client_credentials')->post('/test',function (Request $request) {
    echo 'nice';
});

output closure function

我已将其添加到 kernel.PHP

protected $routeMiddleware = [
..
'client_credentials'     => \Laravel\Passport\Http\Middleware\CheckClientCredentials::class,..

并更改驱动程序

'api' => [
            'driver' => 'passport',//instead of token 
            'provider' => 'users','hash' => false,],

我也将它添加到 .htaccess 中,

RewriteCond %{HTTP:Authorization} ^(.*)

RewriteRule .* - [e=HTTP_AUTHORIZATION:%1]

但是对于您的信息,我之前没有 .htaccess 并且我使用 PHP artisan serve 运行我的应用程序 我已经阅读了很多解决方案,但仍然无效,

有人能帮我解决这个问题吗?感谢您抽出宝贵时间。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)