Lumen Passport 密码授权返回未经身份验证
Posted
技术标签:
【中文标题】Lumen Passport 密码授权返回未经身份验证【英文标题】:Lumen Passport Password Grant Returns Unauthenticated 【发布时间】:2020-03-15 18:43:25 【问题描述】:正如标题所说,我无法验证密码授予返回的访问令牌,而客户端凭据授予工作正常。我已经尝试了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)
从这个错误中,我查看了类 CheckClientCredentials 并在上述行 (88) 上,导致 AuthenticationException 的条件是 $token- >client->firstParty() 部分。现在我也想知道为什么它被认为是第一方令牌?我希望你能帮助我。谢谢!
编辑:
#1125 已在 github 上为此问题打开。
【问题讨论】:
尝试清除缓存php artisan optimize
@EyadJaabo 它在 Lumen 上不可用,但它有 php artisan cache:clear but didn't work.
【参考方案1】:
当我搜索此查询的答案时,我发现最近发布的 Laravel Passport v 8.x 更改了 CheckClientCredentials 类的条件。
正如 Laravel Passport 存储库本身合并的 PR 中所述,所提到的类将仅接受 客户端凭据授予。这也意味着您必须为机器对机器身份验证和实际用户(密码授予)身份验证创建单独的端点并应用不同的中间件。
还有一个与此查询类似的报告 issue 和一个建议的 solution 以减轻它,我认为这是可以接受的。
【讨论】:
以上是关于Lumen Passport 密码授权返回未经身份验证的主要内容,如果未能解决你的问题,请参考以下文章
获取经过身份验证的用户 Laravel/Lumen Passport