Lumen Passport 密码授予 Returns 未经身份验证

Lumen Passport Password Grant Returns Unauthenticated

正如标题所说,我无法验证密码授予返回的访问令牌,而客户端凭据授予工作正常。我尝试了 htaccess 解决方案,但没有用。

在我的日志文件中,它说我有一个 AuthenticationException 密码授予令牌,如下所述。

#12 {main} {"exception":"[object] (Illuminate\Auth\AuthenticationException(code: 0): Unauthenticated. at /opt/lampp/htdocs/LumenApiGateway/vendor/laravel/passport/src/Http/Middleware/CheckClientCredentials.php:88)

从这个错误中,我查看了 class CheckClientCredentials 并在所述行 (88) 上,导致 AuthenticationException[ 的条件=28=] 是 $token->client->firstParty() 部分。现在我也想知道为什么它被认为是第一方令牌?我希望你能帮助我。谢谢!

编辑:

#1125 已针对此问题在 github 打开。

当我搜索此查询的答案时,我发现最近发布的 Laravel Passport v 8.x 更改了 CheckClientCredentials[= 的条件20=] class.

正如 Laravel Passport 存储库本身的合并 PR 中所述,提到的 class 将只接受 客户端凭据授予 。这也意味着您必须创建单独的端点并为机器对机器身份验证和实际用户(密码授予)身份验证应用不同的中间件。

还有一个报告 issue similar to this query and a suggested solution 可以缓解它,我认为可以接受。