我有带有基于cookie的身份验证和会话管理的spring boot应用程序。 对于第一个请求,我将cookie名称和会话哈希值作为值。
另一方面,我有React Native应用程序包裹着Expo。 对于有史以来的第一个请求,我可以从fetch()请求获得这个'set-cookie'标头。然后,即使重新启动应用程序,我也无法获得此标题。
我使用React Native Debugger并使用以下代码行调试它:
GLOBAL.XMLHttpRequest = GLOBAL.originalXMLHttpRequest || GLOBAL.XMLHttpRequest;
我可以在调试器的网络选项卡上看到我的XHR请求。清理完所有cookie后,每次我在请求预览中都收到正确的set-cookie标头。但我无法用fetch(...)看到它。然后(response => response.headers)。
为什么呢?这是持久的我的饼干?如何在没有插件/库的情况下处理cookie数据并将其保存到AsyncStorage?
答案 0 :(得分:2)
答案 1 :(得分:0)
如果您在React Native Debugger中启用了 Network Inspect ,请将其关闭。右键单击Redux区域上的任意位置,然后按Disable Network Inspect
。
我知道这是很多年后的事,但是我发现罪魁祸首是React Native Debugger。如果您启用了网络检查,则会删除set-cookie
标头,从而使您不确定。
请注意,我正在使用Axios版本0.20.0,并在带有React Native Debugger 0.11.5的React Native 0.63.3上的POST配置中将withCredentials
设置为true。我知道这不是一件难事,但那可能是那些年前困扰您的一切。您开始使用RND进行检查时,您的set-cookie
就消失了。
现在的解决方案是禁用“网络检查”,然后您将再次获得set-cookie
。
React Native Debugger于2019年打开了一个错误,作者提到这是一个不易克服的限制。
如果您有兴趣,请在这里阅读更多信息:
https://github.com/jhen0409/react-native-debugger/issues/340#issuecomment-514395195