﻿1
00:00:00,960 --> 00:00:03,130
‫- : Ainsi, au cours des dernières

2
00:00:03,130 --> 00:00:06,220
‫vidéos, nous avons permis à un utilisateur de réinitialiser son

3
00:00:06,220 --> 00:00:08,070
‫mot de passe puis d'en créer

4
00:00:08,070 --> 00:00:09,910
‫un nouveau, mais maintenant nous

5
00:00:09,910 --> 00:00:13,383
‫voulons également permettre à un utilisateur connecté de simplement mettre à jour

6
00:00:13,383 --> 00:00:15,740
‫son mot de passe sans avoir à l'oublier,

7
00:00:15,740 --> 00:00:18,880
‫et ainsi de suite sans tout ce processus de réinitialisation.

8
00:00:18,880 --> 00:00:20,833
‫Alors, construisons cela maintenant.

9
00:00:22,620 --> 00:00:23,810
‫Et, comme

10
00:00:23,810 --> 00:00:26,413
‫avant, faisons-le dans notre contrôleur d'authentification.

11
00:00:28,420 --> 00:00:30,523
‫Alors, exportez. mettre à jour le mot de passe.

12
00:00:35,142 --> 00:00:38,940
‫D'accord, et comme toujours,

13
00:00:38,940 --> 00:00:43,940
‫nos trois paramètres Middleware ici, et d'accord.

14
00:00:44,380 --> 00:00:48,250
‫Rappelez-vous maintenant que cette fonctionnalité de mise à jour du mot de

15
00:00:48,250 --> 00:00:50,260
‫passe est uniquement destinée aux utilisateurs

16
00:00:50,260 --> 00:00:54,290
‫connectés, mais nous avons toujours besoin que l'utilisateur transmette son mot de passe

17
00:00:54,290 --> 00:00:55,920
‫actuel, afin de confirmer

18
00:00:55,920 --> 00:00:58,990
‫que cet utilisateur est bien celui qu'il prétend être.

19
00:00:58,990 --> 00:01:01,260
‫Donc, juste par mesure de sécurité, car

20
00:01:01,260 --> 00:01:04,950
‫imaginez que quelqu'un trouve votre ordinateur ouvert et puisse ensuite changer les

21
00:01:04,950 --> 00:01:08,150
‫mots de passe sur les sites que vous avez actuellement

22
00:01:08,150 --> 00:01:09,530
‫ouverts sans être

23
00:01:09,530 --> 00:01:12,610
‫à nouveau invité à saisir un mot de passe.

24
00:01:12,610 --> 00:01:15,300
‫Et cela vous déconnecterait donc

25
00:01:15,300 --> 00:01:18,260
‫de toutes vos applications existantes, ce qui,

26
00:01:18,260 --> 00:01:21,000
‫bien sûr, serait une expérience terrible.

27
00:01:21,000 --> 00:01:23,800
‫Et donc, par mesure de sécurité, nous devons toujours

28
00:01:23,800 --> 00:01:27,800
‫demander le mot de passe actuel avant de le mettre à jour, d'accord.

29
00:01:27,800 --> 00:01:30,530
‫Et, dans cet esprit, exposons toutes

30
00:01:30,530 --> 00:01:32,760
‫les étapes que nous

31
00:01:32,760 --> 00:01:36,030
‫devons suivre pour implémenter cette fonctionnalité comme avant.

32
00:01:36,030 --> 00:01:39,530
‫Donc, tout d'abord, nous devons obtenir l'utilisateur de

33
00:01:39,530 --> 00:01:41,903
‫la collection, en gros.

34
00:01:44,840 --> 00:01:47,480
‫Ensuite, nous devons vérifier si

35
00:01:47,480 --> 00:01:50,263
‫le mot de passe affiché est correct.

36
00:01:56,430 --> 00:01:57,880
‫Droit.

37
00:01:57,880 --> 00:02:01,800
‫Ensuite, troisièmement, donc si le mot de passe est correct,

38
00:02:01,800 --> 00:02:04,623
‫mettez à jour le mot de passe.

39
00:02:07,170 --> 00:02:11,013
‫Et enfin, nous devons à nouveau connecter l'utilisateur, donc

40
00:02:12,180 --> 00:02:16,610
‫essentiellement pour renvoyer le jsonwebtoken à l'utilisateur, maintenant connecté avec le

41
00:02:16,610 --> 00:02:20,860
‫nouveau mot de passe qui vient d'être mis à jour.

42
00:02:20,860 --> 00:02:23,860
‫D'accord, et tout cela est en fait très similaire à

43
00:02:23,860 --> 00:02:25,510
‫ce que nous avons déjà

44
00:02:25,510 --> 00:02:27,370
‫fait auparavant, et je vous laisse

45
00:02:27,370 --> 00:02:29,430
‫donc celui-ci comme un défi, d'accord ?

46
00:02:29,430 --> 00:02:32,660
‫Alors, s'il vous plaît essayez d'aller de l'avant et implémentez cela par vous-même,

47
00:02:32,660 --> 00:02:35,313
‫et si vous en avez besoin, vous pouvez bien sûr

48
00:02:35,313 --> 00:02:36,800
‫jeter un œil au code

49
00:02:36,800 --> 00:02:39,440
‫que nous avons écrit auparavant, mais essayez vraiment d'écrire le

50
00:02:39,440 --> 00:02:41,720
‫code par vous-même sans trop copier, d'accord ?

51
00:02:41,720 --> 00:02:44,140
‫Vous pouvez donc jeter un œil au reste du code

52
00:02:44,140 --> 00:02:47,680
‫pour voir comment cela fonctionne, mais ne vous contentez pas de le copier, d'accord ?

53
00:02:47,680 --> 00:02:50,610
‫Parce qu'alors tu n'apprendras pas vraiment, d'accord.

54
00:02:50,610 --> 00:02:52,900
‫Alors, mettez la vidéo en pause ici, et je vous verrai dans

55
00:02:52,900 --> 00:02:54,083
‫une seconde avec ma solution.

56
00:02:57,510 --> 00:03:00,450
‫D'accord, j'espère que vous avez réussi à implémenter cela

57
00:03:00,450 --> 00:03:03,533
‫et à le faire fonctionner, c'est ainsi que j'ai procédé.

58
00:03:04,960 --> 00:03:08,963
‫Donc, comme toujours, nous créons une nouvelle variable utilisateur, et là nous

59
00:03:09,970 --> 00:03:14,353
‫attendons le résultat de faire User. findById, et maintenant

60
00:03:17,930 --> 00:03:20,940
‫d'où vient réellement cet ID ?

61
00:03:20,940 --> 00:03:24,590
‫Eh bien, rappelez-vous encore que ce mot de passe de mise à

62
00:03:24,590 --> 00:03:27,710
‫jour est uniquement pour les utilisateurs authentifiés, donc pour les

63
00:03:27,710 --> 00:03:30,830
‫utilisateurs connectés, et donc, à ce stade, nous aurons déjà

64
00:03:30,830 --> 00:03:33,123
‫l'utilisateur actuel sur notre objet de demande.

65
00:03:34,380 --> 00:03:37,273
‫D'accord, cela vient donc du middleware de protection.

66
00:03:38,640 --> 00:03:42,670
‫Donc, req. utilisateur. id, puis rappelez-vous

67
00:03:42,670 --> 00:03:46,933
‫que nous devons demander explicitement le mot de passe, d'accord ?

68
00:03:48,830 --> 00:03:53,260
‫Parce qu'il n'est, par défaut, pas inclus dans la sortie.

69
00:03:53,260 --> 00:03:55,883
‫Alors, on a défini ça sur le schéma, tu te souviens ?

70
00:03:56,860 --> 00:03:58,730
‫Et, nous avons en fait besoin

71
00:03:58,730 --> 00:04:01,860
‫de ce mot de passe parce que maintenant nous voulons le

72
00:04:01,860 --> 00:04:03,690
‫comparer avec celui qui est stocké

73
00:04:03,690 --> 00:04:05,300
‫dans la base de

74
00:04:05,300 --> 00:04:08,850
‫données, et pour cela, comme avant, nous allons utiliser cet objet d'instance

75
00:04:08,850 --> 00:04:10,720
‫que nous avons quelque part ici.

76
00:04:10,720 --> 00:04:13,360
‫Oui, donc correctPassword, qui est disponible sur

77
00:04:13,360 --> 00:04:15,250
‫tous les documents utilisateur,

78
00:04:15,250 --> 00:04:17,680
‫donc il prend d'abord le mot

79
00:04:17,680 --> 00:04:21,850
‫de passe candidat, puis le mot de passe utilisateur réel, d'accord.

80
00:04:21,850 --> 00:04:23,370
‫Oh, et maintenant cela

81
00:04:23,370 --> 00:04:26,120
‫me donne cette erreur car, bien sûr, je ne

82
00:04:26,120 --> 00:04:28,203
‫l'ai pas encore déclaré comme fonction asynchrone.

83
00:04:29,610 --> 00:04:32,534
‫Donc, async, et avant de

84
00:04:32,534 --> 00:04:36,577
‫l'oublier, enveloppons-le également dans la fonction catchAsync ici.

85
00:04:38,589 --> 00:04:40,513
‫Quoi qu'il en soit, comme

86
00:04:40,513 --> 00:04:43,157
‫avant, nous voulons essentiellement créer une erreur ici

87
00:04:43,157 --> 00:04:46,402
‫si le mot de passe actuel n'est pas correct, et

88
00:04:46,402 --> 00:04:48,572
‫donc, écrivons cela dans le code.

89
00:04:48,572 --> 00:04:51,239
‫Donc, sinon utilisateur. correctPassword, puis

90
00:04:53,870 --> 00:04:56,283
‫le mot de passe candidat

91
00:04:56,283 --> 00:04:58,808
‫se souvient, et donc celui-ci va

92
00:04:58,808 --> 00:05:03,808
‫être dans un corps, dans une propriété que nous allons appeler passwordConfirm.

93
00:05:03,980 --> 00:05:07,941
‫D'accord, puis comme deuxième argument le mot de passe réel, donc

94
00:05:07,941 --> 00:05:10,108
‫c'est un utilisateur. le mot de passe.

95
00:05:11,036 --> 00:05:13,820
‫Et puis, rappelez-vous qu'il s'agit d'une fonction asynchrone,

96
00:05:13,820 --> 00:05:16,323
‫et nous devons donc également l'attendre ici.

97
00:05:18,400 --> 00:05:22,173
‫Bien, donc au cas où le mot de passe n'est pas

98
00:05:24,020 --> 00:05:27,500
‫correct, comme toujours, nous créons une nouvelle erreur ici.

99
00:05:27,500 --> 00:05:32,000
‫Donc, nouvelle AppError, et cette fois, nous

100
00:05:32,930 --> 00:05:37,930
‫disons que votre mot de passe actuel est incorrect,

101
00:05:38,720 --> 00:05:43,660
‫puis le code d'état 401 pour non autorisé.

102
00:05:43,660 --> 00:05:45,650
‫Très bien, super.

103
00:05:45,650 --> 00:05:48,240
‫Maintenant, si nous arrivons à ce point dans le

104
00:05:48,240 --> 00:05:51,750
‫code, donc fondamentalement si le mot de passe est également correct, alors

105
00:05:51,750 --> 00:05:54,460
‫nous pouvons réellement mettre à jour le mot de

106
00:05:54,460 --> 00:05:56,400
‫passe, et comment le faisons-nous ?

107
00:05:56,400 --> 00:05:58,763
‫Eh bien, très simple, nous l'avons fait avant.

108
00:05:59,630 --> 00:06:04,630
‫Tout ce que nous disons est utilisateur. le mot de passe est égal à req. corps. mot de passe, puis

109
00:06:08,200 --> 00:06:11,793
‫la même chose, bien sûr, pour la confirmation du mot de passe.

110
00:06:14,010 --> 00:06:17,560
‫D'accord, et la validation se fera automatiquement par le validateur

111
00:06:17,560 --> 00:06:21,300
‫que nous avons spécifié sur le schéma, et cela se fera

112
00:06:21,300 --> 00:06:23,823
‫une fois que nous l'aurons réellement enregistré.

113
00:06:24,690 --> 00:06:29,280
‫Donc, nous attendons l'utilisateur. enregistrer, et donc cette fois nous

114
00:06:29,280 --> 00:06:32,400
‫ne désactivons pas la validation car, bien sûr, nous

115
00:06:32,400 --> 00:06:35,920
‫voulons que la validation se produise, donc comme je l'ai

116
00:06:35,920 --> 00:06:39,120
‫dit précédemment, nous voulons vérifier que la confirmation du

117
00:06:39,120 --> 00:06:42,010
‫mot de passe est bien le même que

118
00:06:42,010 --> 00:06:44,560
‫le mot de passe, n'est-ce pas ?

119
00:06:44,560 --> 00:06:45,570
‫Bon.

120
00:06:45,570 --> 00:06:49,460
‫Et maintenant, juste pour être vraiment sûr que vous compreniez pourquoi nous n'avons

121
00:06:49,460 --> 00:06:53,533
‫pas fait quelque chose comme user. findByIdAndUpdate.

122
00:06:56,530 --> 00:06:59,260
‫Alors, pourquoi n'avons-nous pas fait comme ça ?

123
00:06:59,260 --> 00:07:02,450
‫Et, je sais que j'en ai déjà parlé plusieurs fois, mais

124
00:07:02,450 --> 00:07:05,330
‫je veux que vous compreniez à cent pour cent pourquoi

125
00:07:05,330 --> 00:07:07,990
‫nous ne pouvons pas utiliser cette mise à jour,

126
00:07:07,990 --> 00:07:09,540
‫et c'est pour deux

127
00:07:09,540 --> 00:07:12,143
‫raisons, alors permettez-moi de revenir à notre modèle.

128
00:07:13,090 --> 00:07:14,650
‫Donc, le premier

129
00:07:14,650 --> 00:07:18,920
‫est que cette validation ici ne va pas fonctionner, d'accord ?

130
00:07:18,920 --> 00:07:22,670
‫Et c'est essentiellement parce que cela. le mot de passe n'est

131
00:07:22,670 --> 00:07:27,420
‫pas défini lors de la mise à jour, donc lorsque nous utilisons find by

132
00:07:27,420 --> 00:07:29,440
‫ID et update, car en interne,

133
00:07:29,440 --> 00:07:33,200
‫dans les coulisses, Mongoose ne garde pas vraiment l'objet actuel en

134
00:07:33,200 --> 00:07:36,230
‫mémoire, et donc, ici, cela ne va pas fonctionner.

135
00:07:36,230 --> 00:07:39,130
‫Et, comme je l'ai dit, j'en ai déjà

136
00:07:39,130 --> 00:07:42,650
‫parlé auparavant, donc c'est en fait écrit ici aussi, d'accord ?

137
00:07:42,650 --> 00:07:45,600
‫Mais, il est vraiment important de garder à l'esprit de ne pas utiliser

138
00:07:45,600 --> 00:07:49,340
‫la mise à jour pour quoi que ce soit en rapport avec les mots de passe, d'accord ?

139
00:07:49,340 --> 00:07:51,160
‫Donc, celui-ci ne

140
00:07:51,160 --> 00:07:53,640
‫fonctionnera pas, et ces deux

141
00:07:53,640 --> 00:07:56,510
‫middlewares pré-enregistrés ne fonctionneront pas non plus.

142
00:07:56,510 --> 00:07:59,820
‫Donc, si nous utilisions simplement update pour mettre à jour

143
00:07:59,820 --> 00:08:03,000
‫le mot de passe, alors ce mot de passe

144
00:08:03,000 --> 00:08:04,750
‫ne serait pas crypté,

145
00:08:04,750 --> 00:08:07,530
‫ce qui est ce premier middleware, et puis

146
00:08:07,530 --> 00:08:11,030
‫aussi, l'horodatage passwordChangedAt ne serait pas non plus défini, d'accord ?

147
00:08:11,030 --> 00:08:12,830
‫Donc, rien de tout cela ne

148
00:08:12,830 --> 00:08:15,943
‫fonctionnerait, et encore une fois, nous devons vraiment le faire comme ça.

149
00:08:17,470 --> 00:08:19,020
‫Remettons ça ici.

150
00:08:21,330 --> 00:08:24,430
‫Et maintenant, (marmonne), nous avons connecté

151
00:08:24,430 --> 00:08:27,840
‫l'utilisateur et renvoyé le jeton au client.

152
00:08:27,840 --> 00:08:30,210
‫Maintenant, ce serait en fait la quatrième fois

153
00:08:30,210 --> 00:08:32,320
‫que nous ferions le même code,

154
00:08:32,320 --> 00:08:34,190
‫donc fondamentalement ce morceau de code,

155
00:08:34,190 --> 00:08:36,710
‫et donc, c'est maintenant très rapidement refactorisé cela

156
00:08:36,710 --> 00:08:38,410
‫dans sa propre fonction.

157
00:08:38,410 --> 00:08:42,410
‫Or, ce code n'est en fait pas le même partout.

158
00:08:42,410 --> 00:08:45,090
‫Donc, ici, nous avons envoyé le code

159
00:08:45,090 --> 00:08:47,250
‫d'état 400, et nous n'envoyons

160
00:08:47,250 --> 00:08:51,280
‫pas l'utilisateur, mais ici, dans le gestionnaire d'inscription, nous avons en

161
00:08:51,280 --> 00:08:53,680
‫fait un code d'état différent, et

162
00:08:53,680 --> 00:08:56,900
‫nous avons également envoyé l'utilisateur au client, d'accord ?

163
00:08:56,900 --> 00:08:59,873
‫Et donc, faisons en sorte que notre fonction garde cela à l'esprit.

164
00:09:00,890 --> 00:09:05,890
‫Alors, créons une fonction ici, créons et envoyons un jeton,

165
00:09:06,140 --> 00:09:09,293
‫puis les arguments dont nous avons

166
00:09:11,100 --> 00:09:14,350
‫besoin ici sont l'utilisateur car c'est là

167
00:09:14,350 --> 00:09:17,070
‫que l'ID est stocké.

168
00:09:17,070 --> 00:09:18,893
‫Ensuite, nous voulons également

169
00:09:20,220 --> 00:09:24,060
‫le code d'état, et bien sûr, nous devons avoir accès à

170
00:09:24,060 --> 00:09:26,940
‫l'objet de réponse afin de pouvoir réellement renvoyer

171
00:09:26,940 --> 00:09:29,510
‫une réponse au client, d'accord ?

172
00:09:29,510 --> 00:09:32,473
‫Et donc, fondamentalement, ce dont nous avons besoin maintenant, c'est de ce code.

173
00:09:33,775 --> 00:09:35,930
‫Alors, copions-le, mettons-le ici,

174
00:09:35,930 --> 00:09:38,700
‫puis remplaçons les variables non pertinentes.

175
00:09:38,700 --> 00:09:42,480
‫Donc, l'utilisateur est simplement appelé utilisateur, donc juste comme ça,

176
00:09:42,480 --> 00:09:44,963
‫et ici, la même chose.

177
00:09:46,470 --> 00:09:47,510
‫Donc, pas

178
00:09:47,510 --> 00:09:51,150
‫un nouvel utilisateur, et puis ici nous remplaçons cela par le

179
00:09:51,150 --> 00:09:54,440
‫code d'état, donc celui qui entre dans notre fonction, et

180
00:09:54,440 --> 00:09:57,053
‫donc je suppose que c'est en fait ça.

181
00:09:58,330 --> 00:10:01,070
‫Alors, allons-y maintenant et remplaçons-le,

182
00:10:01,070 --> 00:10:06,070
‫donc createSendToken, et ici l'utilisateur s'appelle le newUser, le code

183
00:10:09,040 --> 00:10:10,763
‫d'état est 201,

184
00:10:12,260 --> 00:10:15,093
‫puis bien sûr l'objet de réponse.

185
00:10:16,730 --> 00:10:19,223
‫Bon, maintenant nous pouvons nous débarrasser de ce code,

186
00:10:20,680 --> 00:10:21,863
‫et copions-le simplement.

187
00:10:23,200 --> 00:10:26,903
‫Très bien, donc dans la connexion, nous avons bien sûr également envoyé

188
00:10:28,860 --> 00:10:32,630
‫un jeton, mais cette fois, l'utilisateur est en fait appelé utilisateur et le

189
00:10:32,630 --> 00:10:34,243
‫code d'état est 200.

190
00:10:38,470 --> 00:10:39,920
‫Et maintenant, copions celui-ci.

191
00:10:42,210 --> 00:10:45,853
‫Donc, le suivant devrait être ici, et réinitialiser le mot de

192
00:10:46,930 --> 00:10:48,400
‫passe, et ici c'est

193
00:10:48,400 --> 00:10:51,323
‫en fait le même, donc le nom est

194
00:10:53,740 --> 00:10:57,550
‫user et code 200, et maintenant, enfin, ici c'est aussi le même.

195
00:10:57,550 --> 00:11:02,360
‫Et ainsi, cela termine notre fonction de mise à jour du mot de passe.

196
00:11:02,360 --> 00:11:03,740
‫Maintenant, pour que cela fonctionne,

197
00:11:03,740 --> 00:11:06,830
‫nous devons bien sûr implémenter la route ici aussi dans

198
00:11:06,830 --> 00:11:08,033
‫notre routeur utilisateur.

199
00:11:09,900 --> 00:11:14,400
‫Alors, routeur. patch, et nous allons faire un patch

200
00:11:14,400 --> 00:11:17,610
‫parce que nous sommes en train de changer, donc nous

201
00:11:17,610 --> 00:11:21,460
‫manipulons le document utilisateur, et c'est donc à cela que sert patch.

202
00:11:21,460 --> 00:11:24,590
‫Et l'itinéraire s'appelle updateMyPassword.

203
00:11:29,060 --> 00:11:30,630
‫Donc, mon mot de

204
00:11:30,630 --> 00:11:34,420
‫passe car il est pour l'utilisateur actuellement connecté, et rappelez-vous, encore une

205
00:11:34,420 --> 00:11:36,810
‫fois, cela ne fonctionne que pour les

206
00:11:36,810 --> 00:11:41,770
‫utilisateurs connectés, et nous devons donc utiliser authController. protect, qui placera également l'objet

207
00:11:41,770 --> 00:11:44,240
‫utilisateur sur un

208
00:11:44,240 --> 00:11:47,270
‫objet de demande, d'accord ?

209
00:11:47,270 --> 00:11:51,593
‫Alors, protégez, puis authController, mettez à jour le mot

210
00:11:51,593 --> 00:11:55,640
‫de passe que nous venons de créer, d'accord.

211
00:11:55,640 --> 00:11:59,593
‫Et donc, allons-y maintenant et testons ça, d'accord ?

212
00:12:02,720 --> 00:12:05,763
‫Alors, copions cette route ici, donc UpdateMyPassword, et

213
00:12:08,080 --> 00:12:09,790
‫maintenant ce que nous

214
00:12:14,300 --> 00:12:18,190
‫devons envoyer dans le corps, ce sont ces trois mots de

215
00:12:18,190 --> 00:12:20,103
‫passe en fait, donc c'est

216
00:12:21,290 --> 00:12:24,817
‫essentiellement le passwordCurrent, et pour l'instant je les laisse vides,

217
00:12:30,350 --> 00:12:32,050
‫je veux simplement

218
00:12:32,050 --> 00:12:35,000
‫mettre le champ noms ici pour le moment.

219
00:12:35,000 --> 00:12:38,750
‫Donc, passwordCurrent puis juste le mot de passe, qui

220
00:12:38,750 --> 00:12:40,503
‫est fondamentalement le

221
00:12:41,690 --> 00:12:44,110
‫nouveau, puis, bien sûr, passwordConfirm.

222
00:12:46,930 --> 00:12:50,320
‫D'accord, et maintenant nous devons nous connecter en tant

223
00:12:50,320 --> 00:12:53,140
‫qu'utilisateur car rappelez-vous, cela ne fonctionne

224
00:12:53,140 --> 00:12:56,250
‫que si l'utilisateur est déjà connecté, d'accord.

225
00:12:56,250 --> 00:12:59,333
‫Et donc, faisons-le avec l'administrateur ici.

226
00:13:00,633 --> 00:13:04,620
‫Et ceci est, devrait être toujours le mot de passe actuel,

227
00:13:04,620 --> 00:13:07,610
‫et en effet, nous sommes maintenant connectés.

228
00:13:07,610 --> 00:13:10,520
‫Et rappelez-vous que ce jeton est maintenant

229
00:13:10,520 --> 00:13:13,313
‫stocké dans la variable d'environnement

230
00:13:14,240 --> 00:13:17,080
‫JWT, et donc, ici, afin de

231
00:13:17,080 --> 00:13:20,400
‫nous authentifier, utilisons-le comme nous le faisions auparavant.

232
00:13:20,400 --> 00:13:24,710
‫Ainsi, dans cet onglet d'autorisation, nous sélectionnons Bearer

233
00:13:24,710 --> 00:13:27,480
‫Token, puis il pré-remplira automatiquement

234
00:13:27,480 --> 00:13:29,293
‫cette variable JWT.

235
00:13:30,140 --> 00:13:32,830
‫D'accord, et c'est donc de là que

236
00:13:32,830 --> 00:13:35,873
‫va provenir l'ID utilisateur, tu te souviens ?

237
00:13:37,830 --> 00:13:42,830
‫Quoi qu'il en soit, spécifions maintenant le mot de passe actuel, donc pass1234, puis

238
00:13:42,999 --> 00:13:45,613
‫disons nouveau mot de passe, d'accord ?

239
00:13:49,040 --> 00:13:50,713
‫Copiez-le et collez-le ici,

240
00:13:51,560 --> 00:13:54,170
‫mais en fait encore une fois, je

241
00:13:54,170 --> 00:13:56,960
‫veux commencer par le tester avec une confirmation

242
00:13:56,960 --> 00:13:59,810
‫de mot de passe erronée, juste pour voir

243
00:13:59,810 --> 00:14:02,720
‫si notre validation fonctionne toujours, et maintenant la route

244
00:14:02,720 --> 00:14:07,300
‫n'est pas définie, mais c'est simplement parce que nous utilisons le mauvais verbe ici.

245
00:14:07,300 --> 00:14:09,610
‫Bien sûr, il doit être patché.

246
00:14:09,610 --> 00:14:11,430
‫Essayons à nouveau, mais maintenant

247
00:14:11,430 --> 00:14:15,040
‫nous obtenons que votre mot de passe actuel est faux, mais en fait

248
00:14:15,040 --> 00:14:18,270
‫ce n'est pas le cas, donc il est en fait correct.

249
00:14:18,270 --> 00:14:21,163
‫Donc, quelque chose ne va pas avec notre code, alors

250
00:14:22,260 --> 00:14:24,143
‫essayons de jeter un œil ici.

251
00:14:26,440 --> 00:14:28,440
‫Et oui, donc voici en fait

252
00:14:28,440 --> 00:14:32,240
‫le problème car nous ne voulons pas comparer ou confirmer le mot de passe,

253
00:14:32,240 --> 00:14:34,763
‫bien sûr, mais avec le mot de passe actuel.

254
00:14:35,750 --> 00:14:39,780
‫D'accord, c'est juste un bug stupide, d'accord, et maintenant

255
00:14:39,780 --> 00:14:41,620
‫ça devrait fonctionner.

256
00:14:41,620 --> 00:14:45,000
‫Donc, bien sûr, nous voulons comparer le mot de passe

257
00:14:45,000 --> 00:14:47,050
‫actuel avec celui qui est

258
00:14:47,050 --> 00:14:50,220
‫actuellement stocké dans la base de données, d'accord.

259
00:14:50,220 --> 00:14:51,503
‫Alors, essayons à nouveau,

260
00:14:52,670 --> 00:14:55,460
‫et c'est donc l'erreur de validation que nous recherchions, donc les

261
00:14:55,460 --> 00:14:57,080
‫mots de passe ne sont pas

262
00:14:57,080 --> 00:14:59,840
‫les mêmes car, en effet, ils ne le sont pas.

263
00:14:59,840 --> 00:15:02,610
‫Et maintenant, avant de mettre à jour le mot

264
00:15:02,610 --> 00:15:04,560
‫de passe, examinons simplement Compass ici.

265
00:15:06,070 --> 00:15:08,550
‫Mettons-le à jour ici rapidement, et donc,

266
00:15:08,550 --> 00:15:11,160
‫pour le moment, c'est le mot de passe.

267
00:15:11,160 --> 00:15:15,080
‫Donc, en terminant ici, c'est pW1i, d'accord ?

268
00:15:15,080 --> 00:15:17,410
‫Et donc, mettons à jour le mot

269
00:15:17,410 --> 00:15:21,333
‫de passe maintenant et voyons à quoi il ressemblera après, d'accord ?

270
00:15:23,400 --> 00:15:25,633
‫Donc, maintenant, tout devrait être correct.

271
00:15:26,720 --> 00:15:31,720
‫Et, en effet, nous obtenons notre succès et notre jeton, très bien.

272
00:15:33,500 --> 00:15:36,000
‫Alors, confirmons cela ici rapidement, et,

273
00:15:36,000 --> 00:15:38,570
‫en effet, vous voyez que le mot

274
00:15:38,570 --> 00:15:40,830
‫de passe a changé et

275
00:15:40,830 --> 00:15:44,403
‫aussi l'horodatage actuel, donc l'heure à laquelle j'enregistre cette vidéo.

276
00:15:45,370 --> 00:15:48,670
‫Très bien, et maintenant, comme avant,

277
00:15:48,670 --> 00:15:51,960
‫faisons ce test ici.

278
00:15:51,960 --> 00:15:55,433
‫Donc, essentiellement, stocker le jeton en tant que variable d'environnement.

279
00:15:59,150 --> 00:16:03,910
‫Donc, juste pour que tout fonctionne vraiment ici dans Postman.

280
00:16:03,910 --> 00:16:06,453
‫D'accord, gardons cela en fait, mettons

281
00:16:07,590 --> 00:16:12,590
‫à jour le mot de passe de l'utilisateur actuel pour le rendre vraiment

282
00:16:14,560 --> 00:16:17,780
‫explicite, et oui, je pense que c'est tout.

283
00:16:17,780 --> 00:16:21,090
‫Je pense que c'est tout ce que nous devons faire pour

284
00:16:21,090 --> 00:16:24,090
‫mettre à jour le mot de passe d'un utilisateur.

285
00:16:24,090 --> 00:16:27,890
‫Ensuite, nous mettrons en œuvre la mise à jour des autres données utilisateur, donc

286
00:16:27,890 --> 00:16:30,713
‫des choses comme les e-mails ou les mots de passe.

