1 00:00:02,100 --> 00:00:03,360 Nous avons donc accompli 2 00:00:03,390 --> 00:00:05,460 beaucoup de choses, nous sommes en mesure d'écrire 3 00:00:05,460 --> 00:00:08,190 des données, de récupérer des données, d'utiliser notre jeton pour délimiter 4 00:00:08,190 --> 00:00:10,950 les données ou pour définir les produits et les commandes pour 5 00:00:10,950 --> 00:00:12,610 notre utilisateur actuellement connecté, nous pouvons nous 6 00:00:12,620 --> 00:00:14,280 connecter, etc., et c'est très bien. 7 00:00:14,280 --> 00:00:20,130 Une chose que nous ne faisons pas en ce moment, c'est que nous ne persistons 8 00:00:20,130 --> 00:00:23,970 pas pour ainsi dire. Si je recharge, je dois toujours 9 00:00:24,030 --> 00:00:25,230 me connecter à 10 00:00:25,230 --> 00:00:31,170 nouveau et ce n'est pas vraiment ce que je veux, ce serait bien si nous pouvions nous connecter automatiquement 11 00:00:31,170 --> 00:00:38,310 si nous avons un jeton valide et pour cela, nous devons faire deux choses - nous devons stocker le jeton quelque part sur l'appareil, 12 00:00:38,310 --> 00:00:43,110 pas dans Redux car Redux est en mémoire et cela sera perdu au redémarrage de l'application. 13 00:00:43,110 --> 00:00:45,920 Il doit donc être quelque part sur le 14 00:00:45,930 --> 00:00:53,480 disque dur de l'appareil pour ainsi dire et en plus, nous devons vérifier ce stockage chaque fois que notre application démarre et définir automatiquement 15 00:00:53,480 --> 00:00:58,080 le jeton dans Redux et rediriger l'utilisateur si nous trouvons un jeton valide là-bas. 16 00:00:59,160 --> 00:01:05,590 Commençons maintenant par le stockage car c'est une première étape logique. Pour stocker, nous devons importer quelque 17 00:01:05,590 --> 00:01:10,090 chose ici dans le, pas dans le créateur d'action 18 00:01:10,090 --> 00:01:20,810 des produits mais en fait ici dans le créateur d'action d'authentification, là vous devez importer le stockage asynchrone de React Native. 19 00:01:21,930 --> 00:01:23,280 Une fois importé, 20 00:01:23,460 --> 00:01:32,130 nous pouvons l'utiliser pour ensuite enregistrer les données sur l'appareil, le stockage asynchrone est une API React Native qui, à la fin, utilise un stockage de 21 00:01:32,130 --> 00:01:38,370 valeurs clés sur l'appareil qui est disponible à la fois sur iOS et Android où nous pouvons stocker des 22 00:01:38,370 --> 00:01:45,150 données qui persistent à travers les relances d'applications, afin que nous puissions utiliser pour enregistrer des données qui ne sont 23 00:01:45,150 --> 00:01:47,460 pas perdues lorsque l'application démarre ou redémarre. 24 00:01:47,460 --> 00:01:52,910 Je vais donc ajouter une nouvelle fonction, enregistrer des données dans le stockage ou quelque chose comme ça 25 00:01:53,040 --> 00:02:00,100 et là, je m'attends à obtenir mon jeton et mon ID utilisateur, les deux données qui m'intéressent ici et nous pouvons maintenant utiliser le 26 00:02:00,140 --> 00:02:08,970 stockage asynchrone à ce moment-là définir un élément qui est la façon dont vous enregistrez les données et cet élément que vous définissez doit être une chaîne, mais tout d'abord, 27 00:02:08,970 --> 00:02:11,560 vous devez définir une clé et je vais 28 00:02:11,580 --> 00:02:14,840 lui donner le nom de données utilisateur, mais cela dépend de 29 00:02:14,850 --> 00:02:19,260 vous, vous aurez besoin de cette clé plus tard pour récupérer vos données et 30 00:02:19,330 --> 00:02:21,170 la deuxième valeur est maintenant 31 00:02:21,180 --> 00:02:26,310 une chaîne, donc la chaîne que vous souhaitez enregistrer là-bas et vous devez enregistrer une chaîne essentiellement. 32 00:02:26,440 --> 00:02:27,340 Maintenant ce 33 00:02:27,340 --> 00:02:33,990 n'est pas un problème, nous pouvons utiliser json. stringify pour convertir un objet Javascript en chaîne et l'objet que 34 00:02:33,990 --> 00:02:40,200 je veux convertir est un objet qui contient mon jeton que j'obtiens comme argument ici et il contient l'ID utilisateur 35 00:02:40,200 --> 00:02:41,740 que j'obtiens comme argument. 36 00:02:41,790 --> 00:02:48,980 Donc, à la fin, nous enregistrons ensuite cet objet sous forme de chaîne sur l'appareil. 37 00:02:48,990 --> 00:02:54,590 Maintenant, nous avons juste besoin d'appeler les données de sauvegarde vers le stockage chaque fois que nous avons fini de nous connecter ou de nous inscrire, donc ici peut-être après 38 00:02:54,590 --> 00:03:01,080 l'envoi de la connexion, nous pouvons appeler les données de sauvegarde vers le stockage et transférer resData. idToken 39 00:03:01,140 --> 00:03:08,100 et resData. localId, donc les mêmes choses que nous utilisons dans Redux 40 00:03:08,100 --> 00:03:11,610 et nous voulons vraiment les utiliser là-bas parce que Redux est important 41 00:03:11,850 --> 00:03:18,090 pour l'application en cours d'exécution mais je l'enregistre également sur l'appareil lorsque nous voulons le charger au redémarrage de l'application. 42 00:03:18,140 --> 00:03:22,810 Maintenant, cependant, cela ne suffira pas à lui seul et nous devons bien sûr le faire 43 00:03:22,820 --> 00:03:28,340 lors de l'inscription, mais cela ne suffira pas à lui seul, nous aurons besoin d'une information supplémentaire ici avant de continuer. 44 00:03:28,430 --> 00:03:35,780 Tu sais quoi? Nous devons savoir combien de temps le jeton est valide, car 45 00:03:36,230 --> 00:03:42,920 vous ne devez pas oublier qu'il expirera finalement, c'est pourquoi, pour vous connecter et vous inscrire, vous obtenez cette clé expireIn 46 00:03:43,310 --> 00:03:50,510 dans la réponse qui vous indique en secondes combien de temps il faut avant que votre jeton n'est pas valide et Firebase ne 47 00:03:50,510 --> 00:03:51,510 l'acceptera plus. 48 00:03:51,650 --> 00:03:57,590 Nous devons également stocker ces informations, car si nous revenons plus tard, si nous redémarrons l'application après trois heures, 49 00:03:57,590 --> 00:04:01,390 notre jeton est probablement invalide, nous devons donc savoir quand le jeton 50 00:04:01,460 --> 00:04:04,370 sera invalidé afin que nous le vérifions, quand 51 00:04:04,370 --> 00:04:09,800 le l'application redémarre, lorsque nous vérifions si nous avons un jeton, nous savons si ce jeton que 52 00:04:09,800 --> 00:04:16,460 nous pourrions trouver est en fait toujours pertinent ou s'il est déjà invalide et nous avons de toute façon besoin d'un 53 00:04:16,460 --> 00:04:20,120 nouveau jeton, auquel cas nous ne devrions pas connecter automatiquement l'utilisateur. 54 00:04:20,480 --> 00:04:23,360 Je veux donc stocker la date d'expiration 55 00:04:23,360 --> 00:04:31,180 et je vais créer la date d'expiration ici en tant que constante, un nouvel objet de date qui à la 56 00:04:31,180 --> 00:04:35,020 fin devrait prendre la date actuelle et ajouter l'heure d'expiration. 57 00:04:37,810 --> 00:04:45,790 Maintenant, la nouvelle date prend un objet date mais avec get time, nous obtenons l'horodatage actuel en millisecondes depuis le 58 00:04:45,790 --> 00:04:49,590 début de l'heure pour ainsi dire, qui est ici 59 00:04:49,780 --> 00:04:51,200 1970 en Javascript. 60 00:04:51,570 --> 00:04:57,630 C'est donc un montant en millisecondes et à cela, nous pouvons ajouter resData. expire dans. 61 00:04:58,210 --> 00:05:01,720 Il s'agit d'un nombre de secondes, nous devons donc le 62 00:05:01,720 --> 00:05:06,910 convertir en millisecondes et c'est également une chaîne, nous devons donc le convertir en nombre. 63 00:05:06,910 --> 00:05:16,490 Donc, ici, j'ajouterai un plus ici ou simplement analyserai alternativement pour le convertir en entier et ensuite je le multiplierai par 1000 64 00:05:16,490 --> 00:05:23,550 pour le convertir de secondes en millisecondes car obtenir le temps nous donne également des millisecondes. 65 00:05:23,570 --> 00:05:29,690 Maintenant, cela me donne un nouvel horodatage dans le futur, qui est l'heure actuelle plus l'heure 66 00:05:29,690 --> 00:05:35,990 d'expiration et je l'enveloppe dans un autre objet de date pour le convertir à partir d'un énorme 67 00:05:36,110 --> 00:05:44,520 nombre de millisecondes en un objet de date d'horodatage concret. Cette date d'expiration est maintenant ce que nous devons également passer pour enregistrer les 68 00:05:44,530 --> 00:05:48,880 données sur le stockage, donc ici, je m'attends à obtenir également la date d'expiration 69 00:05:48,880 --> 00:05:51,070 et nous devons la joindre ici. 70 00:05:51,400 --> 00:05:55,810 Donc ici je peux nommer cette date d'expiration peut-être pour 71 00:05:55,840 --> 00:06:05,830 mélanger les choses, c'est ma date d'expiration et là je veux appeler cette jolie petite méthode toISOString que nous pouvons appeler sur des 72 00:06:05,830 --> 00:06:11,500 objets de date car cela la convertira en une chaîne dans un format 73 00:06:11,500 --> 00:06:14,240 standardisé qui Je veux économiser. 74 00:06:14,400 --> 00:06:18,150 Maintenant, c'est ce que je veux faire pour m'inscrire également, donc 75 00:06:18,150 --> 00:06:20,190 cela peut être copié là-bas et 76 00:06:20,520 --> 00:06:22,120 c'est ce que je 77 00:06:22,170 --> 00:06:26,220 veux faire là aussi, créer la date d'expiration et l'enregistrer dans le stockage. 78 00:06:26,220 --> 00:06:29,220 Maintenant, nous enregistrons cela dans le stockage, ce qui est bien, 79 00:06:29,670 --> 00:06:35,670 mais nous devons également le vérifier lorsque nous nous connectons. Une bonne façon de le faire est de créer un 80 00:06:35,670 --> 00:06:41,040 nouvel écran et je vais réellement le créer en dehors de mes dossiers existants dans le dossier screens 81 00:06:41,040 --> 00:06:47,570 mais ni dans la boutique ni dans l'utilisateur et je nommerai cet écran de démarrage et vous pouvez le nommer comme vous vouloir. 82 00:06:47,610 --> 00:06:54,240 L'idée est que je montre cet écran pendant que mon application démarre et que je détermine si l'utilisateur est authentifié ou non et ce 83 00:06:54,240 --> 00:06:55,380 sera super rapide, 84 00:06:55,380 --> 00:06:56,770 il est probable que nous 85 00:06:56,790 --> 00:07:02,350 ne verrons même pas cet écran au démarrage de l'application. Maintenant ici, nous créons un composant 86 00:07:02,370 --> 00:07:06,670 React normal en important React de React et là-dedans, j'importe des choses 87 00:07:06,910 --> 00:07:11,120 de React Native, pour être précis, j'ai besoin d'une vue, l'indicateur 88 00:07:11,130 --> 00:07:17,310 d'activité pour montrer un spinner de chargement pendant le démarrage de l'application et aussi feuille de style 89 00:07:17,310 --> 00:07:23,280 et également le stockage asynchrone car ici, je veux également accéder au stockage asynchrone pour savoir 90 00:07:23,280 --> 00:07:26,450 si nous avons un jeton valide ou non. 91 00:07:26,460 --> 00:07:33,660 Donc ici, j'ai ensuite mon composant d'écran de démarrage qui est un composant React normal et l'objet 92 00:07:33,780 --> 00:07:44,570 de feuille de style ici avec Stylesheet. créer et à la fin, nous pouvons exporter cet écran de démarrage comme ceci. Maintenant, dans le composant, je vais simplement 93 00:07:44,580 --> 00:07:56,450 présenter l'indicateur d'activité ici avec une taille grande et une couleur de couleurs. primaire et pour cela, vous devez importer ces couleurs constantes 94 00:07:56,450 --> 00:08:05,100 bien sûr et également attribuer un peu de style ici à la vue et 95 00:08:05,100 --> 00:08:13,520 je vais juste prendre des styles. écran ici que nous pouvons maintenant ajouter à la feuille 96 00:08:13,520 --> 00:08:16,530 de style et qui devrait être 97 00:08:16,690 --> 00:08:23,690 très simple, en fléchir un, justifier le centre de contenu et aligner le centre de l'élément 98 00:08:23,720 --> 00:08:29,870 pour du contenu centré verticalement et horizontalement. Maintenant, bien sûr, les choses vraiment importantes se produisent 99 00:08:29,870 --> 00:08:33,520 au-dessus du code jsx, c'est là que nous devons maintenant vérifier 100 00:08:33,620 --> 00:08:39,820 le stockage asynchrone pour un jeton valide et je peux le faire à l'aide de l'effet d'utilisation qui me 101 00:08:39,820 --> 00:08:42,230 permet d'exécuter une logique ici lorsque ce 102 00:08:42,250 --> 00:08:51,190 composant monté et en effet ici, je n'aurai pas besoin de dépendances car ici à l'intérieur de l'effet d'utilisation, je veux maintenant ajouter une nouvelle fonction que je 103 00:08:51,190 --> 00:08:58,060 nommerai try sign up ou try login est plus approprié et j'utilise la fonction séparée car ici je Je veux utiliser async 104 00:08:58,090 --> 00:09:04,390 attendre ce que je peux faire en créant cette fonction intérieure que je peux maintenant appeler ici, essayez de vous 105 00:09:04,390 --> 00:09:05,310 connecter car 106 00:09:05,410 --> 00:09:10,840 encore une fois, async ici sur cette fonction que vous passez pour utiliser effet ne serait pas 107 00:09:10,840 --> 00:09:14,020 vraiment autorisé et ici, dans essayez de vous connecter, l'objectif 108 00:09:14,170 --> 00:09:21,460 est maintenant de vérifier le stockage asynchrone pour un jeton valide. J'obtiens donc mes données utilisateur ici en accédant à 109 00:09:21,520 --> 00:09:23,030 AsyncStorage. getItem, 110 00:09:23,240 --> 00:09:28,750 puis utilisez la clé que vous avez utilisée pour le stockage. 111 00:09:28,960 --> 00:09:35,950 Donc, dans mon cas, ce sont les données utilisateur, mais vous devez utiliser la clé que vous avez utilisée dans votre authentification. Fichier js dans le dossier actions 112 00:09:35,950 --> 00:09:43,160 pour stocker vos données avec un stockage asynchrone. Je récupère donc ceci et maintenant la chose importante à savoir 113 00:09:43,160 --> 00:09:49,970 ici est que l'élément, comme toutes les méthodes de stockage asynchrones, est en fait asynchrone, ce qui signifie, comme son nom 114 00:09:50,030 --> 00:09:55,520 l'indique, je suppose, ce qui signifie que vous obtenez une promesse ici, donc nous pouvons attendre 115 00:09:55,520 --> 00:09:58,560 cela et cela nous rendra nos données d'utilisateur. 116 00:09:58,570 --> 00:10:05,200 Maintenant, ce sont les données sous forme de chaîne, pour les convertir en données avec 117 00:10:05,230 --> 00:10:14,410 lesquelles nous pouvons travailler, j'aurai mes données transformées avec JSON. analyser les données utilisateur et cela analyse une chaîne au 118 00:10:14,410 --> 00:10:24,220 format JSON et la convertit en un objet ou un tableau Javascript. Maintenant, avant même d'essayer cela, je vais vérifier si les données utilisateur ne sont pas vraies, donc si 119 00:10:24,220 --> 00:10:24,850 elles 120 00:10:24,850 --> 00:10:31,030 ne sont pas définies, si nous ne pouvons pas trouver de données pour cette clé, car je sais que nous ne sommes 121 00:10:31,030 --> 00:10:31,720 certainement pas connectés. 122 00:10:31,780 --> 00:10:36,370 Alors ici, je veux revenir et ne pas continuer et faire une 123 00:10:36,370 --> 00:10:43,810 chose importante, je vais utiliser la navigation des accessoires et naviguer vers l'écran d'authentification car cet écran de démarrage 124 00:10:43,810 --> 00:10:44,770 doit être 125 00:10:45,190 --> 00:10:52,960 ajouté au navigateur, donc ici nous pouvons l'importer, importer l'écran de démarrage à partir du dossier screens bien sûr, écran 126 00:10:54,070 --> 00:10:57,590 de démarrage et nous l'ajoutons au navigateur principal 127 00:10:57,760 --> 00:11:07,190 ici, donc là où nous avons également auth et shop et là tout en haut, j'ajoute startup et pointe sur mon écran de démarrage. 128 00:11:07,350 --> 00:11:11,490 Cela signifie que c'est la première chose que je charge ici. 129 00:11:11,490 --> 00:11:17,010 Maintenant, sur cet écran de démarrage, je vais donc à l'écran d'authentification si nous ne trouvons pas de jeton, 130 00:11:17,010 --> 00:11:22,230 donc grâce au commutateur de navigation, je quitte cet écran et vais à l'écran d'authentification ou à la 131 00:11:22,230 --> 00:11:28,810 pile d'authentification parce que je ne trouve pas un jeton. Donc, si nous le dépassons si nous vérifions, nous avons au moins quelques données mais le 132 00:11:28,810 --> 00:11:29,950 jeton peut toujours être invalide. 133 00:11:30,370 --> 00:11:39,980 Nous aurons donc bien sûr le jeton, l'ID utilisateur et la date d'expiration que nous pouvons extraire des données transformées après 134 00:11:40,520 --> 00:11:42,770 cette ligne, ici avec 135 00:11:43,600 --> 00:11:46,860 cette syntaxe de déstructuration d'objet et ce 136 00:11:46,870 --> 00:11:54,580 sont les trois éléments de données avec les trois mêmes noms exacts que je stocke ici dans 137 00:11:54,580 --> 00:11:56,400 l'auth. fichier js. Nous 138 00:11:56,410 --> 00:12:00,700 avons donc ici un objet avec un champ token, userId 139 00:12:00,700 --> 00:12:03,000 et expiration date, c'est ce 140 00:12:03,010 --> 00:12:08,580 que nous stockons dans le stockage asynchrone, c'est ce que je peux récupérer ici. 141 00:12:08,610 --> 00:12:11,360 Maintenant, nous devons vérifier si le jeton est 142 00:12:11,460 --> 00:12:20,670 toujours valide et pour cela, je peux recréer ma date d'expiration en utilisant une nouvelle date et en passant la date d'expiration qui est en fait une chaîne au 143 00:12:20,670 --> 00:12:23,220 format ISO et maintenant nous pouvons ajouter 144 00:12:23,220 --> 00:12:27,270 une vérification if et voir si date d'expiration, donc la date à laquelle 145 00:12:27,270 --> 00:12:33,660 le jeton devient invalide, si elle est inférieure ou égale à la nouvelle date, qui est l'horodatage actuel, ce qui 146 00:12:33,660 --> 00:12:39,570 signifie que la date d'expiration est passée et si c'est dans le passé, alors notre jeton n'est pas valide. 147 00:12:40,320 --> 00:12:45,300 Il est également invalide si nous ne pouvons pas trouver de jeton ou également si nous ne 148 00:12:45,360 --> 00:12:51,900 pouvons pas trouver un ID utilisateur, si l'une des trois conditions est vraie, nous avons un jeton non valide ou un ID 149 00:12:51,900 --> 00:12:54,550 utilisateur non valide ou quelque chose comme ça. 150 00:12:54,570 --> 00:12:58,700 Donc, dans ce cas, je veux également revenir et 151 00:12:59,340 --> 00:13:05,640 bien sûr naviguer vers l'écran d'authentification. Si nous le dépassons si check, nous avons 152 00:13:05,700 --> 00:13:10,110 un jeton, nous avons un ID utilisateur et le jeton est toujours valide. 153 00:13:10,110 --> 00:13:17,720 Donc, si vous arrivez ici, j'appellerai des accessoires. la navigation. naviguer dans la boutique pour aller à l'écran de 154 00:13:17,720 --> 00:13:21,020 la boutique et aussi important, je dois connecter l'utilisateur et pour cela, nous 155 00:13:21,030 --> 00:13:24,230 avons besoin d'une nouvelle action parce que je ne veux pas envoyer 156 00:13:24,240 --> 00:13:29,900 de demande maintenant, je veux juste changer certaines données dans Redux. Je vais donc ajouter un nouveau créateur 157 00:13:31,550 --> 00:13:44,200 d'action ici, exporter const authenticate peut-être qui prend mon userId et mon token et qui est ensuite utilisé pour changer mes données dans Redux et pour cela, je vais 158 00:13:44,200 --> 00:13:45,250 maintenant 159 00:13:45,250 --> 00:13:54,390 ajouter un nouvel identifiant d'action, authentifier avec une chaîne d'authentifier ici et l'utiliser ici comme type d'authentifier, attachez mon ID utilisateur 160 00:13:55,290 --> 00:14:02,190 qui est mon ID utilisateur ici et mon jeton qui est le jeton que j'obtiens comme 161 00:14:02,190 --> 00:14:08,360 argument et maintenant cette action d'authentification est ce que je veux envoyer ici sur 162 00:14:08,370 --> 00:14:09,600 l'écran de démarrage. 163 00:14:10,730 --> 00:14:15,950 Mais avant de le faire, nous pouvons également revenir au créateur d'action et à 164 00:14:15,950 --> 00:14:22,520 la fin de l'inscription, au lieu d'envoyer ma propre action d'inscription personnalisée ici, nous pouvons également envoyer authentifier 165 00:14:22,550 --> 00:14:23,390 et exécuter 166 00:14:23,510 --> 00:14:33,930 ceci ici, ce créateur d'action et simplement transmettre resData. localId comme userId et resData. idToken en tant que jeton 167 00:14:33,950 --> 00:14:40,040 et faites de même à la fin de la connexion. 168 00:14:40,040 --> 00:14:45,400 Alors maintenant, j'ai effectivement combiné ces deux flux parce qu'au final, la même chose se produit, alors maintenant 169 00:14:45,560 --> 00:14:51,350 dans le réducteur, dans le rédacteur d'authentification, bien sûr, au lieu de vérifier la connexion et l'inscription, nous pouvons 170 00:14:51,350 --> 00:14:57,780 simplement importer authentifier et utiliser cet identifiant ici, se débarrasser de l'inscription et je vais juste le commenter pour le vivre 171 00:14:57,800 --> 00:15:00,830 ici pour référence car la même chose se produit. 172 00:15:00,860 --> 00:15:05,980 Alors maintenant, il est logique de le combiner car nous en avons également besoin pour cette connexion automatique. 173 00:15:06,020 --> 00:15:11,090 Alors ici, je l'envoie également ici pour la connexion manuelle et l'inscription manuelle et bien sûr maintenant avec 174 00:15:11,090 --> 00:15:17,150 cela, si vous le souhaitez, vous pouvez également vous débarrasser de la connexion et de l'inscription ici, de ces deux identifiants 175 00:15:17,150 --> 00:15:20,200 parce que nous ne le faisons pas les utiliser plus. 176 00:15:20,390 --> 00:15:24,380 Mais avec cela, revenons à l'écran de démarrage, ici nous pouvons 177 00:15:24,600 --> 00:15:34,480 maintenant également distribuer ceci et pour cela, il vous suffit d'importer utiliser la répartition à partir de React Redux et d'importer l'action, alors importez tout en tant qu'actions 178 00:15:34,490 --> 00:15:41,650 d'authentification, peut-être à partir du dossier du magasin, à partir de la dossier d'actions et à partir du fichier auth 179 00:15:41,650 --> 00:15:43,190 là et puis 180 00:15:43,270 --> 00:15:49,590 ici au début, accédez à la fonction de répartition en appelant use dispatch et avec celle disponible, ici 181 00:15:49,800 --> 00:15:55,230 nous pouvons ajouter la répartition en tant que dépendance mais cela ne changera jamais, donc 182 00:15:55,240 --> 00:16:01,330 l'effet ne se réexécutera jamais et ici après avoir accédé à la boutique, je veux maintenant également 183 00:16:01,450 --> 00:16:10,510 envoyer des actions d'authentification authentifier et transmettre l'ID utilisateur extrait, donc ce champ ici et le jeton extrait, donc ce champ que j'ai obtenu de 184 00:16:10,510 --> 00:16:19,150 mon stockage asynchrone et qui devrait maintenant me connecter automatiquement . Cela représentait beaucoup de travail, voyons 185 00:16:19,150 --> 00:16:24,310 si cela fonctionne. Si je recharge cela, je me retrouve ici sur l'écran de connexion car 186 00:16:24,340 --> 00:16:27,010 pour le moment je n'ai pas de jetons valides stockés dans le stockage asynchrone. 187 00:16:27,880 --> 00:16:37,510 Alors maintenant, si j'essaye de me connecter ici, je suis transféré, si je recharge maintenant, je me retrouve à nouveau ici et c'est génial 188 00:16:37,510 --> 00:16:43,560 car maintenant cela signifie que cela semble fonctionner et que le jeton est stocké. 189 00:16:43,730 --> 00:16:48,230 Maintenant, bien sûr, ce serait bien si nous pouvions également nous déconnecter, car pour le moment, il n'y a aucun moyen 190 00:16:48,230 --> 00:16:49,070 de le faire.