﻿1
00:00:01,260 --> 00:00:02,790
‫-: Content de te revoir.

2
00:00:02,790 --> 00:00:05,270
‫Nous avons donc implémenté

3
00:00:05,270 --> 00:00:07,770
‫l'authentification dans notre projet jusqu'à présent.

4
00:00:07,770 --> 00:00:09,930
‫Et, ça marche très bien.

5
00:00:09,930 --> 00:00:12,960
‫Cependant, parfois, simplement s'authentifier, donc connecter

6
00:00:12,960 --> 00:00:14,640
‫un utilisateur, n'est vraiment

7
00:00:14,640 --> 00:00:16,150
‫pas suffisant.

8
00:00:16,150 --> 00:00:17,490
‫Et, donc dans

9
00:00:17,490 --> 00:00:20,173
‫cette vidéo, nous allons également implémenter l'autorisation.

10
00:00:21,730 --> 00:00:24,850
‫Alors, imaginez l'acte de supprimer une visite de

11
00:00:24,850 --> 00:00:26,440
‫notre base de données.

12
00:00:26,440 --> 00:00:28,890
‫Ainsi, tous les utilisateurs ne devraient bien sûr pas

13
00:00:28,890 --> 00:00:30,530
‫être autorisés à le faire.

14
00:00:30,530 --> 00:00:33,306
‫Même si l'utilisateur est connecté, n'est-ce pas ?

15
00:00:33,306 --> 00:00:36,055
‫Ainsi, nous avons essentiellement besoin d'autoriser

16
00:00:36,055 --> 00:00:38,510
‫uniquement certains types d'utilisateurs, pour

17
00:00:38,510 --> 00:00:40,720
‫effectuer certaines actions.

18
00:00:40,720 --> 00:00:43,550
‫Et c'est exactement ce qu'est l'autorisation.

19
00:00:43,550 --> 00:00:46,562
‫Il vérifie si un certain utilisateur a les

20
00:00:46,562 --> 00:00:49,520
‫droits d'interagir avec une certaine ressource.

21
00:00:49,520 --> 00:00:53,181
‫Donc, encore une fois, avec l'autorisation, nous vérifions essentiellement

22
00:00:53,181 --> 00:00:58,080
‫si un certain utilisateur est autorisé à accéder à une certaine ressource,

23
00:00:58,080 --> 00:00:59,890
‫même s'il est connecté.

24
00:00:59,890 --> 00:01:03,150
‫Donc, tous les utilisateurs connectés ne pourront pas effectuer les

25
00:01:03,150 --> 00:01:05,950
‫mêmes actions dans notre API, d'accord ?

26
00:01:05,950 --> 00:01:08,119
‫Et c'est un scénario très courant qui

27
00:01:08,119 --> 00:01:10,240
‫devrait généralement être mis en œuvre dans

28
00:01:10,240 --> 00:01:12,222
‫chaque application Web, d'accord ?

29
00:01:12,222 --> 00:01:15,163
‫Nous allons donc construire une autre fonction

30
00:01:15,163 --> 00:01:18,410
‫middleware ici, cette fois pour restreindre certaines routes.

31
00:01:18,410 --> 00:01:20,780
‫Par exemple, pour supprimer des visites.

32
00:01:20,780 --> 00:01:23,310
‫Donc, cela signifie que nous allons créer une

33
00:01:23,310 --> 00:01:24,840
‫autre fonction middleware ici.

34
00:01:24,840 --> 00:01:27,290
‫Cette fois, pour restreindre certains itinéraires, comme,

35
00:01:27,290 --> 00:01:29,068
‫par exemple, la suppression

36
00:01:29,068 --> 00:01:31,338
‫de circuits, uniquement à certains rôles d'utilisateurs.

37
00:01:31,338 --> 00:01:32,630
‫D'accord?

38
00:01:32,630 --> 00:01:35,020
‫Et laissez-moi vous montrer à quoi cela

39
00:01:35,020 --> 00:01:36,520
‫ressemblerait dans la pratique.

40
00:01:36,520 --> 00:01:38,410
‫Donc ici, dans les

41
00:01:38,410 --> 00:01:42,270
‫itinéraires de tournée, revenons à cet exemple de suppression

42
00:01:42,270 --> 00:01:46,770
‫de tournées, et ajoutons donc un middleware dans la pile ici.

43
00:01:46,770 --> 00:01:50,670
‫Alors authController, protégez.

44
00:01:50,670 --> 00:01:52,300
‫Donc d'abord, nous devons

45
00:01:52,300 --> 00:01:55,490
‫toujours vérifier si un utilisateur est réellement connecté, d'accord ?

46
00:01:55,490 --> 00:01:58,550
‫Donc, si un administrateur essaie de supprimer une visite,

47
00:01:58,550 --> 00:02:00,020
‫il devra toujours vérifier

48
00:02:00,020 --> 00:02:02,350
‫s'il est réellement connecté, n'est-ce pas ?

49
00:02:02,350 --> 00:02:04,610
‫Ainsi, le premier middleware de la pile

50
00:02:04,610 --> 00:02:06,690
‫ici sera toujours celui de protection.

51
00:02:06,690 --> 00:02:09,130
‫Mais ensuite, après celui-ci, nous

52
00:02:09,130 --> 00:02:13,113
‫aurons également le authController. restreindre.

53
00:02:14,760 --> 00:02:17,000
‫Alors restrictTo, d'accord ?

54
00:02:17,000 --> 00:02:20,180
‫Et dans cette fonction nous passerons ensuite des rôles d'utilisateurs,

55
00:02:20,180 --> 00:02:23,220
‫qui seront autorisés à interagir avec cette ressource.

56
00:02:23,220 --> 00:02:27,030
‫Dans ce cas, avec la suppression d'une tournée, d'accord ?

57
00:02:27,030 --> 00:02:29,390
‫Alors définissons celui-ci sur admin.

58
00:02:29,390 --> 00:02:31,650
‫Donc, seulement aux administrateurs.

59
00:02:31,650 --> 00:02:35,120
‫D'accord, et maintenant nous traitons ici des rôles d'utilisateur.

60
00:02:35,120 --> 00:02:36,650
‫Donc, tout comme admin.

61
00:02:36,650 --> 00:02:39,584
‫Et pour le moment, nous n'avons pas cela dans notre modèle d'utilisateur.

62
00:02:39,584 --> 00:02:42,642
‫Et donc implémentons rapidement cela ici.

63
00:02:42,642 --> 00:02:43,633
‫D'accord.

64
00:02:44,470 --> 00:02:48,160
‫Alors, faisons-le.

65
00:02:48,160 --> 00:02:52,323
‫En fait, avant le mot de passe, alors comme ici.

66
00:02:56,170 --> 00:02:59,730
‫Et ici, vous pouvez voir comment notre gestionnaire d'exceptions non

67
00:02:59,730 --> 00:03:02,070
‫capturées fonctionne très bien, car restrictTo

68
00:03:02,070 --> 00:03:05,130
‫n'est pas encore une fonction, n'est-ce pas ?

69
00:03:05,130 --> 00:03:06,610
‫Nous ne l'avons pas encore mis en œuvre.

70
00:03:06,610 --> 00:03:08,810
‫Je l'ai simplement utilisé pour montrer ce

71
00:03:08,810 --> 00:03:10,410
‫que nous allons construire exactement.

72
00:03:10,410 --> 00:03:12,280
‫Et bien sûr, il y

73
00:03:12,280 --> 00:03:13,510
‫a une erreur,

74
00:03:13,510 --> 00:03:17,490
‫et donc nodemon attend maintenant que nous redémarrions le serveur, d'accord ?

75
00:03:17,490 --> 00:03:20,323
‫Quoi qu'il en soit, le rôle ici devrait

76
00:03:26,240 --> 00:03:30,110
‫être du type String, et maintenant je vais utiliser le validateur enum afin

77
00:03:30,110 --> 00:03:33,310
‫de n'autoriser que certains types de rôles ici à spécifier.

78
00:03:33,310 --> 00:03:37,410
‫Et ce sont les utilisateurs généraux, donc les utilisateurs normaux,

79
00:03:37,410 --> 00:03:38,860
‫appelons-les simplement utilisateur.

80
00:03:41,170 --> 00:03:42,823
‫Ensuite, nous avons le

81
00:03:44,120 --> 00:03:45,823
‫guide touristique, nous avons le guide

82
00:03:47,240 --> 00:03:49,043
‫touristique principal et nous avons l'administrateur.

83
00:03:50,410 --> 00:03:53,250
‫Alors, j'appelle juste cet administrateur, d'accord ?

84
00:03:53,250 --> 00:03:56,359
‫Et ces rôles d'utilisateurs que nous avons ici seront

85
00:03:56,359 --> 00:03:59,450
‫bien entendu spécifiques au domaine de l'application.

86
00:03:59,450 --> 00:04:02,260
‫Ainsi, par exemple, lorsque vous gérez un site communautaire, cela

87
00:04:02,260 --> 00:04:03,840
‫n'aura pas beaucoup de sens

88
00:04:03,840 --> 00:04:05,940
‫d'avoir un guide et un guide principal.

89
00:04:05,940 --> 00:04:08,570
‫Au lieu de cela, vous aurez probablement,

90
00:04:08,570 --> 00:04:11,700
‫comme, des modérateurs ou des contributeurs, ou des membres.

91
00:04:11,700 --> 00:04:13,740
‫Ainsi, vous aurez toujours des

92
00:04:13,740 --> 00:04:16,680
‫noms différents, selon le type d'application que vous écrivez.

93
00:04:16,680 --> 00:04:19,023
‫Mais dans notre cas, c'est ce qui a du sens.

94
00:04:21,290 --> 00:04:24,170
‫Ensuite, nous voulons également définir une valeur par défaut ici,

95
00:04:24,170 --> 00:04:26,540
‫de sorte que nous n'avons pas à

96
00:04:26,540 --> 00:04:29,080
‫toujours spécifier le type d'utilisateur que nous créons.

97
00:04:29,080 --> 00:04:32,320
‫Et donc l'utilisateur, l'utilisateur normal, disons, est celui

98
00:04:32,320 --> 00:04:35,220
‫qui va être créé par défaut.

99
00:04:35,220 --> 00:04:36,990
‫Alors allons-y maintenant et

100
00:04:36,990 --> 00:04:39,340
‫supprimons les utilisateurs que nous avons

101
00:04:39,340 --> 00:04:41,021
‫déjà, car ils

102
00:04:41,021 --> 00:04:45,713
‫n'ont aucun rôle, et nous n'avons donc plus besoin d'eux comme ça.

103
00:04:47,780 --> 00:04:48,810
‫D'accord.

104
00:04:48,810 --> 00:04:50,260
‫Et donc allons

105
00:04:50,260 --> 00:04:52,630
‫de l'avant et en créons de nouveaux.

106
00:04:52,630 --> 00:04:55,980
‫Donc, je vais m'inscrire ici en tant que hello@jonas,

107
00:04:58,610 --> 00:05:03,610
‫et ça va maintenant être un utilisateur normal, et maintenant nous n'avons pu obtenir

108
00:05:04,180 --> 00:05:06,060
‫de réponse, et c'est

109
00:05:06,060 --> 00:05:09,320
‫bien sûr parce que nous avons cette erreur ici,

110
00:05:09,320 --> 00:05:13,083
‫et donc, allons très retirez rapidement cette ligne de code.

111
00:05:14,750 --> 00:05:16,050
‫Et maintenant, l'erreur a disparu.

112
00:05:17,326 --> 00:05:19,400
‫Et maintenant, il devrait

113
00:05:19,400 --> 00:05:22,000
‫s'exécuter, et en effet nous avons maintenant

114
00:05:22,000 --> 00:05:25,120
‫cet utilisateur, avec le rôle d'utilisateur, d'accord ?

115
00:05:25,120 --> 00:05:26,293
‫C'est donc notre valeur

116
00:05:27,920 --> 00:05:29,883
‫par défaut, mais créons maintenant un administrateur ici.

117
00:05:30,860 --> 00:05:32,330
‫Et pour que cela

118
00:05:32,330 --> 00:05:34,630
‫soit vraiment clair, mettons-le ici dans l'e-mail également,

119
00:05:34,630 --> 00:05:36,780
‫et maintenant nous devons vraiment spécifier le rôle

120
00:05:40,100 --> 00:05:41,603
‫et définir celui-ci sur admin.

121
00:05:42,860 --> 00:05:47,360
‫Envoyez-le, et maintenant nous avons ici notre administrateur système.

122
00:05:47,360 --> 00:05:48,193
‫Frais.

123
00:05:48,193 --> 00:05:52,930
‫Donc, revenons ici, remettons réellement ce code, et nous allons maintenant faire

124
00:05:52,930 --> 00:05:55,210
‫en sorte que nous puissions

125
00:05:55,210 --> 00:05:58,360
‫réellement passer plusieurs arguments dans ce restrictTo.

126
00:05:58,360 --> 00:06:01,220
‫Donc, je veux que l'administrateur puisse supprimer des visites,

127
00:06:01,220 --> 00:06:02,974
‫mais aussi supprimer un guide.

128
00:06:02,974 --> 00:06:04,000
‫D'accord?

129
00:06:04,000 --> 00:06:05,750
‫Et ajoutons donc cela ici aussi.

130
00:06:08,070 --> 00:06:09,130
‫D'accord?

131
00:06:09,130 --> 00:06:12,210
‫Ainsi, l'administrateur et le guide principal peuvent désormais

132
00:06:12,210 --> 00:06:16,200
‫supprimer des visites, mais pas les guides normaux, ni les utilisateurs normaux.

133
00:06:16,200 --> 00:06:17,140
‫D'accord?

134
00:06:17,140 --> 00:06:20,220
‫Voici donc comment restrictTo va fonctionner,

135
00:06:20,220 --> 00:06:22,423
‫allons-y maintenant et implémentons-le.

136
00:06:25,270 --> 00:06:28,563
‫Donc les exportations. restrictTo, et

137
00:06:30,470 --> 00:06:34,120
‫maintenant, comment allons-nous réellement implémenter cela?

138
00:06:34,120 --> 00:06:36,510
‫Parce qu'habituellement, nous ne pouvons pas passer

139
00:06:36,510 --> 00:06:38,910
‫d'arguments dans une fonction middleware, n'est-ce pas ?

140
00:06:38,910 --> 00:06:41,010
‫Mais dans ce cas, nous le voulons vraiment.

141
00:06:41,010 --> 00:06:42,640
‫Nous voulons transmettre les rôles,

142
00:06:42,640 --> 00:06:46,100
‫qui est autorisé à accéder à la ressource, n'est-ce pas ?

143
00:06:46,100 --> 00:06:48,800
‫Donc, ce cas, l'administrateur et le guide principal.

144
00:06:48,800 --> 00:06:51,940
‫Nous avons donc besoin d'un moyen de transmettre des arguments

145
00:06:51,940 --> 00:06:54,050
‫à la fonction middleware d'une manière

146
00:06:54,050 --> 00:06:55,830
‫qui ne fonctionne généralement pas.

147
00:06:55,830 --> 00:06:57,658
‫Alors, comment allons-nous faire?

148
00:06:57,658 --> 00:07:00,600
‫Eh bien, ici, nous allons en fait créer

149
00:07:00,600 --> 00:07:03,410
‫comme une fonction wrapper, qui renverra ensuite

150
00:07:03,410 --> 00:07:07,033
‫la fonction middleware que nous voulons réellement créer, d'accord ?

151
00:07:08,070 --> 00:07:10,540
‫C'est donc la fonction restrictTo, et

152
00:07:10,540 --> 00:07:12,160
‫ici nous voulons

153
00:07:12,160 --> 00:07:14,150
‫passer un nombre arbitraire d'arguments.

154
00:07:14,150 --> 00:07:15,870
‫Donc, en gros, des rôles.

155
00:07:15,870 --> 00:07:18,196
‫Et donc nous pouvons utiliser la syntaxe des paramètres

156
00:07:18,196 --> 00:07:20,793
‫rest, qui est encore une fois nouvelle dans ES6, et

157
00:07:21,950 --> 00:07:23,240
‫cela créera alors un

158
00:07:23,240 --> 00:07:26,053
‫tableau de tous les arguments qui ont été spécifiés, d'accord ?

159
00:07:28,740 --> 00:07:30,350
‫Nous créons donc cette

160
00:07:30,350 --> 00:07:33,960
‫fonction, et tout de suite nous retournerons une nouvelle fonction.

161
00:07:33,960 --> 00:07:36,730
‫Et c'est la fonction middleware elle-même.

162
00:07:36,730 --> 00:07:40,573
‫Alors, demande, réponse, et ensuite.

163
00:07:43,000 --> 00:07:43,833
‫D'accord?

164
00:07:43,833 --> 00:07:44,890
‫Avoir du sens ?

165
00:07:44,890 --> 00:07:47,190
‫Et donc cette fonction ici

166
00:07:47,190 --> 00:07:49,643
‫aura alors essentiellement accès au paramètre de

167
00:07:49,643 --> 00:07:53,310
‫ce rôle ici, car il y a une fermeture, d'accord ?

168
00:07:53,310 --> 00:07:55,780
‫Donc, juste comme un commentaire ici pour

169
00:07:55,780 --> 00:07:58,160
‫expliquer, les rôles sont un tableau.

170
00:07:58,160 --> 00:08:01,338
‫Ainsi, par exemple, il pourrait s'agir,

171
00:08:01,338 --> 00:08:06,338
‫dans ce cas, d'un administrateur et d'un guide principal, d'accord ?

172
00:08:08,670 --> 00:08:12,490
‫Alors, quand allons-nous donner à un utilisateur l'accès à un certain itinéraire ?

173
00:08:12,490 --> 00:08:15,410
‫Eh bien, en gros, quand son rôle d'utilisateur est

174
00:08:15,410 --> 00:08:19,900
‫à l'intérieur de ce tableau de rôles que nous avons transmis, n'est-ce pas ?

175
00:08:19,900 --> 00:08:21,930
‫Disons donc que nous avons maintenant

176
00:08:21,930 --> 00:08:24,930
‫l'utilisateur normal, qui a un rôle de simple utilisateur,

177
00:08:24,930 --> 00:08:26,300
‫alors écrivons-le ici.

178
00:08:26,300 --> 00:08:29,397
‫Le rôle est maintenant juste utilisateur.

179
00:08:29,397 --> 00:08:32,520
‫Et donc fondamentalement, il n'est pas contenu dans

180
00:08:32,520 --> 00:08:36,490
‫ce tableau, et donc, cet utilisateur n'a pas la permission, d'accord ?

181
00:08:36,490 --> 00:08:38,320
‫Et donc, écrivons cela dans le code.

182
00:08:38,320 --> 00:08:39,670
‫C'est en fait assez simple.

183
00:08:40,650 --> 00:08:45,650
‫Donc, sinon des rôles. include, et d'accord, une fois de

184
00:08:47,072 --> 00:08:50,660
‫plus, include est une très belle méthode de tableau

185
00:08:50,660 --> 00:08:54,850
‫qui est en Java Script disponible sur tous les tableaux, d'accord ?

186
00:08:54,850 --> 00:08:57,010
‫Donc, si ce tableau de rôles n'inclut

187
00:08:57,010 --> 00:08:58,900
‫pas le rôle de l'utilisateur

188
00:08:58,900 --> 00:09:01,800
‫actuel, alors nous n'accordons pas la permission à cet utilisateur.

189
00:09:01,800 --> 00:09:04,740
‫Et où est stocké le rôle de l'utilisateur actuel ?

190
00:09:04,740 --> 00:09:07,247
‫Eh bien, rappelons-nous la ligne de code que nous

191
00:09:07,247 --> 00:09:09,394
‫avons en fait mis en place ici, juste

192
00:09:09,394 --> 00:09:11,620
‫à la fin où nous accordons l'accès à

193
00:09:11,620 --> 00:09:12,900
‫la route protégée, nous

194
00:09:12,900 --> 00:09:16,460
‫stockons l'utilisateur actuel dans la demande. utilisateur.

195
00:09:16,460 --> 00:09:18,520
‫Et rappelez-vous comment ce middleware

196
00:09:18,520 --> 00:09:21,929
‫de protection s'exécute toujours avant restrictTo, n'est-ce pas ?

197
00:09:21,929 --> 00:09:25,330
‫Donc, ici, nous avons d'abord

198
00:09:25,330 --> 00:09:27,391
‫protect, puis restrictTo.

199
00:09:27,391 --> 00:09:30,600
‫Et donc au moment où cette fonction middleware s'exécute

200
00:09:30,600 --> 00:09:32,660
‫ici, celle-ci est déjà terminée

201
00:09:32,660 --> 00:09:35,830
‫et a placé l'utilisateur actuel sur l'objet de demande.

202
00:09:35,830 --> 00:09:38,740
‫Et maintenant, nous pouvons l'utiliser ici.

203
00:09:38,740 --> 00:09:42,480
‫Alors demande. utilisateur. rôle.

204
00:09:42,480 --> 00:09:45,050
‫C'est donc là que le rôle est stocké.

205
00:09:45,050 --> 00:09:45,953
‫Si simple.

206
00:09:46,950 --> 00:09:50,993
‫Dans ce cas, nous créons une nouvelle erreur.

207
00:09:52,970 --> 00:09:55,932
‫Donc, comme avant, et maintenant,

208
00:09:55,932 --> 00:10:00,932
‫nous disons que vous n'avez pas la permission d'effectuer cette action.

209
00:10:03,680 --> 00:10:07,000
‫Et maintenant un nouveau code de statut, qui est 403.

210
00:10:07,000 --> 00:10:09,790
‫Et celui-ci signifie interdit, d'accord ?

211
00:10:09,790 --> 00:10:11,400
‫Il y a

212
00:10:11,400 --> 00:10:14,480
‫donc vraiment un code d'état http spécifique pour

213
00:10:14,480 --> 00:10:18,180
‫ce cas, donc pour l'autorisation en gros, d'accord ?

214
00:10:18,180 --> 00:10:22,423
‫Et bien, sinon, nous appelons simplement le suivant.

215
00:10:24,090 --> 00:10:25,580
‫Et c'est vraiment tout.

216
00:10:25,580 --> 00:10:27,910
‫C'est donc aussi simple que cela.

217
00:10:27,910 --> 00:10:30,160
‫Alors récapitulons rapidement ce que nous venons de faire ici.

218
00:10:31,650 --> 00:10:35,140
‫Donc, ici, nous exécutons d'abord le middleware protect.

219
00:10:35,140 --> 00:10:36,770
‫Ensuite, restrictTo middleware, et

220
00:10:36,770 --> 00:10:39,410
‫seulement si ces deux middlewares passent au suivant,

221
00:10:39,410 --> 00:10:41,100
‫on passe au lead tour.

222
00:10:41,100 --> 00:10:42,830
‫Et donc fondamentalement, ce

223
00:10:42,830 --> 00:10:45,419
‫gestionnaire de route, ou ce contrôleur de route,

224
00:10:45,419 --> 00:10:47,790
‫est protégé et est également restreint par ce

225
00:10:47,790 --> 00:10:49,750
‫middleware que nous venons de créer.

226
00:10:49,750 --> 00:10:50,800
‫Ensuite, dans

227
00:10:50,800 --> 00:10:52,650
‫cette fonction, nous passons tous

228
00:10:52,650 --> 00:10:55,730
‫les rôles autorisés à interagir avec cette ressource.

229
00:10:55,730 --> 00:10:57,794
‫Donc, en gros, qui sont autorisés

230
00:10:57,794 --> 00:11:00,310
‫à exécuter cette fonction de gestionnaire, d'accord ?

231
00:11:00,310 --> 00:11:03,370
‫Et donc, cette fonction restrictTo s'exécutera

232
00:11:03,370 --> 00:11:06,910
‫et renverra la fonction middleware elle-même, d'accord ?

233
00:11:06,910 --> 00:11:11,140
‫Et cette fonction middleware elle-même est en fait celle-ci.

234
00:11:11,140 --> 00:11:13,010
‫Il aura alors, du

235
00:11:13,010 --> 00:11:16,500
‫fait de la fermeture, accès aux rôles, d'accord ?

236
00:11:16,500 --> 00:11:19,350
‫Et donc, disons que le rôle de l'utilisateur actuel, qui

237
00:11:19,350 --> 00:11:24,180
‫est, rappelons-le, stocké dans req. utilisateur. rôle, non?

238
00:11:24,180 --> 00:11:27,020
‫Donc, disons que son rôle est utilisateur, et

239
00:11:27,020 --> 00:11:29,970
‫puisque ce rôle n'est pas dans le tableau de ce

240
00:11:29,970 --> 00:11:32,920
‫rôle, eh bien, nous obtenons alors cette erreur, d'accord ?

241
00:11:32,920 --> 00:11:37,583
‫Et c'est ce que ce rôle. comprend des tests ici pour, d'accord ?

242
00:11:38,450 --> 00:11:40,410
‫Mais bien sûr, s'il est

243
00:11:40,410 --> 00:11:42,860
‫inclus, alors on passe au middleware suivant.

244
00:11:42,860 --> 00:11:46,130
‫Qui encore, est alors le gestionnaire d'itinéraire lui-même.

245
00:11:46,130 --> 00:11:46,963
‫Frais.

246
00:11:46,963 --> 00:11:48,120
‫Donc, j'espère que cela a du sens.

247
00:11:48,120 --> 00:11:50,453
‫Allons-y maintenant et testons-le rapidement.

248
00:11:51,390 --> 00:11:52,580
‫D'accord?

249
00:11:52,580 --> 00:11:54,340
‫Alors maintenant, nous avons

250
00:11:54,340 --> 00:11:58,420
‫ce jeton ici, stocké dans la variable JTW, n'est-ce pas ?

251
00:11:58,420 --> 00:12:00,890
‫Alors rappelez-vous cela de la dernière conférence.

252
00:12:00,890 --> 00:12:03,233
‫Donc, nous sommes dans cet

253
00:12:03,233 --> 00:12:06,230
‫environnement de développement, et voici donc cette variable.

254
00:12:06,230 --> 00:12:08,080
‫Donc exactement celui qui est ici.

255
00:12:09,540 --> 00:12:10,373
‫D'accord?

256
00:12:10,373 --> 00:12:12,600
‫Donc, si nous devions maintenant supprimer

257
00:12:12,600 --> 00:12:16,914
‫une tournée, nous devrions alors spécifier cette variable là-dedans, n'est-ce pas ?

258
00:12:16,914 --> 00:12:19,936
‫Passons donc à l'autorisation, le jeton au porteur,

259
00:12:19,936 --> 00:12:21,970
‫et en fait, il

260
00:12:21,970 --> 00:12:24,470
‫le place déjà ici pour nous.

261
00:12:24,470 --> 00:12:25,980
‫Donc, il sait déjà que

262
00:12:25,980 --> 00:12:28,480
‫c'est celui-ci que nous voulons utiliser, parce que, eh

263
00:12:28,480 --> 00:12:30,544
‫bien, nous l'avons utilisé avant, d'accord ?

264
00:12:30,544 --> 00:12:32,960
‫Maintenant, je veux commencer par vous montrer

265
00:12:32,960 --> 00:12:36,710
‫qu'un utilisateur régulier ne peut pas supprimer une visite maintenant, d'accord ?

266
00:12:36,710 --> 00:12:40,183
‫Et commençons donc par nous connecter en tant qu'utilisateur normal.

267
00:12:41,300 --> 00:12:44,253
‫Et alors c'est bonjour, non ?

268
00:12:45,530 --> 00:12:50,530
‫N'oubliez pas, en ce moment, nous avons hello@jonas. io, qui est un utilisateur normal,

269
00:12:50,670 --> 00:12:54,410
‫et nous avons admin@jonas. io.

270
00:12:54,410 --> 00:12:58,350
‫Et nous avons toujours cet ancien ici, débarrassons-nous en.

271
00:12:58,350 --> 00:12:59,183
‫D'accord.

272
00:12:59,183 --> 00:13:01,803
‫Et donc je vais commencer par hello@jonas. io.

273
00:13:03,630 --> 00:13:04,650
‫D'accord?

274
00:13:04,650 --> 00:13:08,470
‫Donc, en vous connectant, ce jeton va être stocké dans la

275
00:13:08,470 --> 00:13:10,770
‫variable d'environnement, et maintenant nous sommes prêts

276
00:13:10,770 --> 00:13:12,670
‫à supprimer une visite.

277
00:13:13,530 --> 00:13:16,440
‫En fait, nous devons également obtenir une pièce d'identité

278
00:13:16,440 --> 00:13:18,940
‫maintenant, alors obtenons-en une rapidement à partir

279
00:13:18,940 --> 00:13:22,063
‫d'ici, nous allons donc supprimer une de nos tournées ici.

280
00:13:25,450 --> 00:13:27,420
‫Alors utilisons simplement le dernier ici.

281
00:13:27,420 --> 00:13:28,683
‫Donc, l'astronome.

282
00:13:31,356 --> 00:13:32,189
‫D'accord?

283
00:13:32,189 --> 00:13:35,570
‫Et voyons si nous obtenons notre message d'erreur.

284
00:13:35,570 --> 00:13:38,290
‫Et, en effet, vous n'avez pas la permission

285
00:13:38,290 --> 00:13:39,620
‫d'effectuer cette action.

286
00:13:39,620 --> 00:13:41,610
‫Donc, 403.

287
00:13:41,610 --> 00:13:44,823
‫Donc, en effet, ça marche un peu, non?

288
00:13:46,150 --> 00:13:47,630
‫Mais, pour terminer

289
00:13:47,630 --> 00:13:50,433
‫maintenant, connectons-nous bien sûr en tant qu'administrateur.

290
00:13:52,830 --> 00:13:53,823
‫Alors, administrateur.

291
00:13:55,480 --> 00:13:56,540
‫Connexion.

292
00:13:56,540 --> 00:14:00,000
‫Et donc ce jeton est maintenant stocké dans cette variable.

293
00:14:00,000 --> 00:14:01,500
‫Et donc si vous

294
00:14:01,500 --> 00:14:04,910
‫exécutez cela maintenant, nous devrions pouvoir supprimer efficacement la tournée.

295
00:14:04,910 --> 00:14:05,743
‫Je veux voir?

296
00:14:07,720 --> 00:14:09,240
‫Et c'est parti.

297
00:14:09,240 --> 00:14:11,920
‫Nous avons donc un code de 204, pas de

298
00:14:11,920 --> 00:14:13,999
‫contenu, qui est la norme lors de

299
00:14:13,999 --> 00:14:16,259
‫la suppression, mais maintenant si nous obtenons

300
00:14:16,259 --> 00:14:19,090
‫toutes nos tournées, nous devrions maintenant voir un nombre huit

301
00:14:19,090 --> 00:14:20,460
‫ici, donc seulement

302
00:14:20,460 --> 00:14:24,350
‫huit résultats, et cela signifie que le dernier est maintenant parti, d'accord ?

303
00:14:24,350 --> 00:14:26,520
‫Et donc maintenant, comme nous venons

304
00:14:26,520 --> 00:14:28,496
‫de le prouver, un administrateur

305
00:14:28,496 --> 00:14:31,671
‫a la permission de supprimer efficacement des visites, d'accord ?

306
00:14:31,671 --> 00:14:34,372
‫Et, je ne saurais trop

307
00:14:34,372 --> 00:14:38,060
‫insister sur l'importance de ce morceau de code ici.

308
00:14:38,060 --> 00:14:40,980
‫Donc, en gros, où nous obtenons le rôle de

309
00:14:40,980 --> 00:14:43,550
‫l'utilisateur actuel du middleware avant, d'accord ?

310
00:14:43,550 --> 00:14:46,804
‫Donc, stocker l'utilisateur sur la demande comme nous l'avons

311
00:14:46,804 --> 00:14:48,770
‫fait ici, est vraiment

312
00:14:48,770 --> 00:14:52,170
‫crucial pour que cette prochaine étape fonctionne réellement, d'accord ?

313
00:14:52,170 --> 00:14:55,760
‫Ainsi, l'ID qui est encodé dans le jeton Web Jason est ce

314
00:14:55,760 --> 00:14:57,990
‫qui permet à notre code de

315
00:14:57,990 --> 00:15:01,470
‫savoir si l'utilisateur qui essaie d'effectuer l'action est un utilisateur, ou s'il

316
00:15:01,470 --> 00:15:04,900
‫s'agit d'un administrateur, ou s'il s'agit d'un guide principal, ou autre.

317
00:15:04,900 --> 00:15:06,790
‫Encore une fois, parce que

318
00:15:06,790 --> 00:15:09,730
‫ces données proviennent de ce middleware de protection.

319
00:15:09,730 --> 00:15:10,563
‫Super.

320
00:15:10,563 --> 00:15:13,790
‫C'était encore une autre pièce importante du puzzle dans

321
00:15:13,790 --> 00:15:17,040
‫la mise en œuvre de notre flux de travail d'authentification ici.

322
00:15:17,040 --> 00:15:19,821
‫Et bien sûr, vous souhaitez restreindre de nombreux

323
00:15:19,821 --> 00:15:23,479
‫autres itinéraires, par exemple, comme la mise à jour ici, d'accord ?

324
00:15:23,479 --> 00:15:25,300
‫Mais je vais laisser ça pour

325
00:15:25,300 --> 00:15:27,320
‫un point ultérieur du cours, d'accord ?

326
00:15:27,320 --> 00:15:29,420
‫Ici, je voulais juste vous

327
00:15:29,420 --> 00:15:31,663
‫montrer comment tout cela fonctionne, d'accord ?

328
00:15:32,730 --> 00:15:35,600
‫Donc, je pense que j'ai réussi.

329
00:15:35,600 --> 00:15:38,620
‫J'espère que vous avez compris comment cela a fonctionné,

330
00:15:38,620 --> 00:15:41,668
‫et bien sûr, sinon, vous pouvez toujours poser une question

331
00:15:41,668 --> 00:15:44,300
‫dans la section officielle Q & A.

332
00:15:44,300 --> 00:15:47,840
‫Quoi qu'il en soit, il y a du contenu plus intéressant à venir en ce moment

333
00:15:47,840 --> 00:15:49,483
‫et donc, passons à autre chose.

