2016-12-13 9 views
10

私はreact-nativeとjavadriptのfetch apiを初めて使用しています。私はバックエンドで私のアプリを認証し、私のiosシミュレータでいくつかのリフレッシュの後、アプリは最初の読み込み時にバックエンドで認証されているかどうかをチェックしています。これは、反応したネイティブとどこに何が永続しているのか、そしてfetch APIの問題を引き起こしますか?react-native fetch()cookie persist

ありがとうございます!ネイティブを反応させるに

+0

AsyncStorageを使用している場合を除き、永続化するものはありません。 –

+0

@mattそれは素人のネイティブアプリです。私はAsyncStorageを使用していません。これは開発環境の機能ですか? –

+0

トークンを保存しますか? – abeikverdi

答えて

14

fetchネイティブレベルAPIの上に実装され、whatwg specificationと周知github polyfillと若干異なります。つまり、実際のHTTPリクエストは、iOSのネイティブネットワークスタックまたはAndroidのOkHttp3によって作成され、いずれの場合もJSコードから離れたCookieを処理して保存するObjCまたはJavaコードです。

は、2015年11月の this commitまでは、クッキーが正しく、すべてのAndroid上で持続しなかったが、RN 0.16以来、彼らはあなたの fetch通話にかかわらず credential設定の両方のプラットフォームでサポートされてきました。その結果、セッションクッキーなどはすぐに使用でき、何かが永続することを期待していない場合は戸惑う可能性があります。あなたのJSからクッキーを操作する必要がある場合は、基本的なクッキーストアと対話する react-native-cookiesを見てください。

+0

この情報をありがとう! 'fetch'は箱から出るべきだと言うので、何らかの理由で' NSHTTPCookieStorage'を使用しない*シナリオを考えてみてください。 (私はアプリのネイティブ部分にログインしていましたが、RN部分のままで認証が必要なリクエストを使用できることを期待していました) – phi

+0

'NSHTTPCookieStorage'またはRNのクッキー実装については十分に分かりませんその上に確かに言いますが、ネイティブコードを使用してログインしている場合は、クッキーにアクセスするための追加作業が必要と思われます。 – Longsight

+1

実際に私はそれを動作させることができました - 私がしなければならなかった唯一のことは、対応するPodと一緒に反応し&反応するネイティブを更新することでした。その後、クッキーは箱から出ました。とにかくありがとう! – phi