Azure /.auth/me服务终结点有时返回“[]”空数组

6rqinv9w  于 2022-12-24  发布在  其他
关注(0)|答案(1)|浏览(167)

有时/.auth/me服务端点返回[],很难重现该问题。
我试着空闲了1个小时,当我回来刷新页面时,它只会将我重定向到登录页面,而不会返回空数组“[]"。
我想捕获/.auth/me如何以及何时返回空数组“[]”,我想知道这是什么原因,以及如何解决它?

kb5ga3dv

kb5ga3dv1#

根据我的测试,当与请求沿着发送的AppServiceAuthSession Cookie无效时,将返回一个空数组。但是,重新登录到Web App后,之前无效的Cookie将再次有效。
要复制:
1.确保已登录到Azure Web应用
1.在Web App中,打开开发人员工具并打开网络选项卡
1.访问/.auth/me,然后检查网络选项卡中的请求。You should see the cookie in the request headers.
1.复制cookie并尝试在HTTP客户端(如Postman)中加载/.auth/me。将“Cookie”标头设置为从网络工具复制的cookie。在我使用Postman的情况下,页面加载完全正常。
1.返回Web浏览器,转到/.auth/logout退出Web应用程序;在我的例子中,没有重定向,所以我现在看到的是“你已经退出”屏幕。2注意服务器的响应是删除AppServiceAuthSession cookie。
1.在Postman中,再次运行请求。不要更改任何参数,尤其是Cookie头。/.auth/me返回一个空数组。
1.返回浏览器,重新登录到Web App。打开网络工具,然后再次访问/.auth/me。请注意,有一个新的AppServiceAuthSession Cookie。
1.在Postman中,不修改任何参数,再次将请求发送到/.auth/me,现在/.auth/me不再为空。
在我看来,一些潜在的解决方案是确保AppServiceAuthSession cookie在注销时从客户端的内存中删除(/.auth/me本来就应该这么做,但可能客户端有什么东西阻止了这一点--比如我的情况);或者在检测到空数组时将用户重定向到/.auth/logout,然后让他们再次登录。

相关问题