web-dev-qa-db-fra.com

le cookie fetch () react-native persiste

Je suis nouveau dans l'utilisation de react-native et aussi de l'api fetch en javascript. J'authentifie mon application avec un backend et après plusieurs rafraîchissements dans mon simulateur ios, l'application vérifie si elle est authentifiée avec le backend lors du chargement initial et à ma grande surprise, c'est le cas! Cela soulève la question de savoir où et ce qui persiste à l'intérieur de react-native et de l'api fetch?

Merci!

16
Cory Robinson

fetch on React Native est implémenté au-dessus des API de niveau natif et diffère légèrement de la spécification whatwg et le bien connu github polyfill . Cela signifie que lorsque la requête HTTP réelle est effectuée, elle est effectuée par la pile de mise en réseau native sur iOS ou OkHttp sur Android, et dans chaque cas, c'est le ObjC sous-jacent ou Java code qui gère et stocke les cookies, loin de votre code JS.

Jusqu'au ce commit de novembre 2015, les cookies n'étaient pas correctement persistés sur Android du tout, mais depuis RN 0.16, ils ont été pris en charge sur les deux plates-formes indépendamment du credential définition de vos appels fetch. Par conséquent, les cookies de session et similaires fonctionnent immédiatement, ce qui peut être déconcertant si vous ne vous attendez pas à ce que quelque chose persiste. Si vous devez manipuler les cookies de votre JS, jetez un œil à react-native-cookies , qui interagit avec les magasins de cookies sous-jacents.

23
Longsight

J'ai eu le même problème et j'ai finalement dû utiliser AsyncStorage pour enregistrer des jetons et des cookies et j'ai également utilisé des cookies réactifs pour effacer tous les cookies. par exemple: CookieManager.cearAll ()

0
Manoj Alwis