Laravel7 Passport:尝试将请求发送到“api/user”时获取“未定义索引:aud”
Posted
技术标签:
【中文标题】Laravel7 Passport:尝试将请求发送到“api/user”时获取“未定义索引:aud”【英文标题】:Laravel7 Passport: Getting "Undefined index: aud" when trying to send the request to "api/user" 【发布时间】:2020-08-21 07:34:08 【问题描述】:我正在使用 Laravel 7 和 Vue 2 以及 Passport。我正在尝试访问 api/user 端点,但收到此错误。
注意:我已经完成了https://laravel.com/docs/7.x/passport 中提到的所有护照实施过程。但仍然出现此错误。
我的 Vue 组件中的 api 调用:
created()
axios.get("/api/user")
.then(res => console.log(res.data))
.catch(err => console.log(err))
错误:
这个问题有什么解决办法吗?
【问题讨论】:
问题已修复 laravel 护照版本 9.0.1 ***.com/a/61650784/4257737 【参考方案1】:升级到护照版本 9.0.1 解决了这个问题。
【讨论】:
【参考方案2】:服务器代码需要 "aud" ("audience") token,但未提供:
OIDC 除了访问令牌之外还有 ID 令牌。 OIDC 规范明确说明了在 ID 令牌中使用 aud 声明。 (openid-connect-core-1.0)
音频
必填。此 ID 令牌的目标受众。它必须包含作为受众的依赖方的 OAuth 2.0
client_id
价值。它还可以包含其他受众的标识符。在里面 一般情况下,aud 值是一个区分大小写的字符串数组。在 有一个观众时的常见特殊情况,aud 值 MAY 是一个区分大小写的字符串。
此外,代码中没有 array_key_exists()
签入以优雅地处理丢失令牌的情况。
如果您无法提供所需信息,上述答案建议了一些解决方法。
【讨论】:
【参考方案3】:如我所见,它与 Passport (v9) 的最新版本有关。尝试使用 8.5 版本以确保并检查并查看此处https://github.com/laravel/passport
【讨论】:
以上是关于Laravel7 Passport:尝试将请求发送到“api/user”时获取“未定义索引:aud”的主要内容,如果未能解决你的问题,请参考以下文章
Laravel Passport:发送令牌请求时的附加模型条件
使用 Passport 通过 Facebook 进行身份验证不起作用
如何使用passport-jwt在nodejs中发送/提取JWT令牌?
使用 Nuxt 前端实现 Laravel 7 Passport 身份验证
在发布路线上使用 nodemailer 发送电子邮件并使用 passport.authenticate 将用户保存到 mongodb