【发布时间】:2021-07-25 20:07:51
【问题描述】:
在我当前的 react native 项目中,我们在 oidc 之上构建了身份验证流程。 它在执行用户身份验证时使用多个重定向。 这些重定向是针对其中包含一些身份验证数据的 url。 这是一些存根示例:
fetch('https://my-auth-server.domain/address') -> 302 ('myappid://action?user=data')
如您所见,服务器将初始请求重定向到自定义 url 方案。还有一个问题: (我想)由于这个自定义 url 方案,我没有收到响应,但只有“不支持的 URL”XHR 错误。没有标题,我可以从中解析重定向位置,什么都没有。就是这个错误文本。
真的可以通过 React Native fetch / XHR 处理自定义 url 方案重定向吗?
环境:
- React Native 0.64
- iOS 12.1-14.4
- 反应导航 v4
- XCode 12.5
我已经做过的事情:
- 我在应用中设置了深度链接,并设置了 URL 方案。
- 我已将
Allow Arbitrary Loads设置为 true 并配置了域。 - 我尝试使用纯 XHR 请求、axios、fetch - 结果始终相同。
- 在模拟器的 Safari 和桌面浏览器中,初始 URL 可以正常打开。
- React Flipper 还会显示来自该请求的响应以及所有数据! (状态:302,所有标题都到位等)
也没有办法拦截这个重定向,因为 React Native 的 fetch 不支持 { redirect: "manual" } 选项。
【问题讨论】:
-
无赖,我也遇到了同样的问题。
-
完全是无赖,我非常同意你的看法。我正在寻找的唯一可能的解决方案是使用 WebView 来处理此身份验证链。但我所做的这些更改的全部目的是不再使用 WebView >.
-
我希望运行一个后端服务器来在后台进行身份验证。如果您愿意,我们可以离线讨论,如果成功,我们可以在这里发布我们正在做的事情作为答案。
-
这似乎也是可能的解决方案。您可以通过电子邮件 tollemet@gmail.com 与我联系以进行进一步讨论。
标签: ios react-native xmlhttprequest fetch