Easy Auth 对某些人返回空响应

Posted

技术标签:

【中文标题】Easy Auth 对某些人返回空响应【英文标题】:Easy Auth returns empty response for some people 【发布时间】:2019-09-30 08:03:30 【问题描述】:

我正在使用/.auth/me 端点为用户获取声明。

我正在获取 Bearer 令牌以对端点进行身份验证。

端点本身位于 Azure 函数源上,所以我调用的是 https://azure_function_name.azurewebsites.net/.auth/me,其中 Authorization 标头设置为 Bearer (token)

这适用,但不适用于所有人。

有些人从/.auth/me 端点得到以下响应:

[]

为什么/.auth/me 端点对某些令牌(人)返回有效响应,而对其他令牌(人)返回空响应?

【问题讨论】:

您是如何获得访问令牌的? AFAIK Easy Auth 是 WIP github.com/Azure/azure-functions-host/issues/33 您对此还有其他顾虑吗? @TonyJu 访问令牌来自 Azure 函数入口点的请求对象的 Authorization 标头。 【参考方案1】:

我正在使用OAuth 2.0 auth code grant(使用用户登录)来获取访问令牌。我可以通过端点/.auth/me 得到正确的响应。我已经在我的租户中尝试了会员或访客用户。

您可以尝试直接访问https://azure_function_name.azurewebsites.net/.auth/me。登录后会收到回复。

回复网址应为https://azure_function_name.azurewebsites.net/.auth/login/aad/callback

【讨论】:

实际上,当我在浏览器中导航到该端点时,我收到The reply url specified in the request does not match the reply urls configured for the application 错误,但我认为这并不重要,因为有些人得到了他们的声明,而另一些人得到了空数组作为回应,但他们都得到了200 OK @Szybki 你能检查一下回复的网址吗?我已经更新了我的答案。它很奇怪。 “访问令牌来自 Azure 函数入口点的请求对象的授权标头。”登录后获取访问令牌了吗? 很遗憾,完全没有。我解决了这个问题,只是检查我是否得到 200 OK 或 401 未经授权的响应,以验证用户是否已通过身份验证。我仍然不知道为什么对于某些令牌,我在响应正文中得到空数组。

以上是关于Easy Auth 对某些人返回空响应的主要内容,如果未能解决你的问题,请参考以下文章

带有 RESTful 的 GraphQL 返回空响应

Laravel Guzzle Basic Auth成功返回空

返回空的特定搜索结果(Spotify API)

catch 块不返回空值

Facebook Graph API返回页面事件的空数据响应[重复]

auth0 授权 api 调用返回 200 状态但仍然得到错误响应