2016-12-13 69 views
10

我是新來使用反應母語,也是fetch API中的JavaScript。我使用後端驗證我的應用程序,並在我的ios模擬器中進行了多次刷新後,該應用程序會檢查它是否在初始加載時與後端進行身份驗證,令我驚訝的是,它是!這引出了反應原生態和fetch api中哪裏和什麼是持續存在的問題?反應原生取()餅乾堅持

謝謝!

+0

沒有什麼應該堅持,除非你使用AsyncStorage –

+0

@馬特這是一個裸露的骨頭反應,本機應用程序。我沒有用過AsyncStorage。這可能是一個開發環境功能嗎? –

+0

所以你想預設令牌? – abeikverdi

回答

14

fetch上反應母語是在本地級別API上實現和whatwg specification和公知的github polyfill稍有不同。這意味着,實際的HTTP請求時,它是由本地網絡協議棧由iOS和OkHttp3在Android,並在每種情況下,它是處理和存儲的cookie,從你的JS代碼遠離底層ObjC或Java代碼。

直到2015年11月的this commit,根本沒有在Android上正確保存cookie,但由於RN 0.16,它們在兩個平臺上都受到支持,無論fetch呼叫中的credential設置如何。因此,會話cookie和類似的功能可以立即使用,如果您不希望任何事情持續存在,這可能會令人不安。如果你需要從你的JS中操作cookies,看看react-native-cookies,它與底層的cookie存儲相互作用。

+0

感謝您的信息!既然你說'fetch'應該可以開箱即用,你可能會想到一種場景,出於某種原因,它不會使用NSHTTPCookieStorage? (我在我的應用程序的本地部分登錄,我期待能夠使用需要身份驗證請求按原樣在RN部分) – phi

+0

我真的不知道有足夠的瞭解'NSHTTPCookieStorage'或RN的Cookie實現最重要的是可以肯定地說,但我懷疑如果你通過本地代碼登錄,還有其他工作要做。 – Longsight

+1

其實我設法得到它的工作 - 我不得不這樣做的唯一的事情就是更新反應和反應本地的,與相應的吊艙一起。然後,cookies開箱即用。不管怎麼說,還是要謝謝你!從反應本土餅乾 – phi