问题描述
在我当前的 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
- React 导航 v4
- XCode 12.5
我已经做过的:
- 我在应用中设置了深层链接并设置了 URL Schemes。
- 我已将
Allow Arbitrary Loads
设置为 true 并配置了域。 - 我尝试使用纯 XHR 请求、axios、fetch - 结果始终相同。
- 在模拟器的 Safari 和桌面浏览器中,初始 url 可以正常打开。
- React Flipper 还显示了来自此请求的所有数据的响应! (状态:302,所有标头都已就位等)
也没有办法拦截这个重定向,因为 React Native 的 fetch 不支持 { redirect: "manual" } 选项。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)