1
00:00:03,920 --> 00:00:07,970
Temps pour la troisième affectation de ce cours.

2
00:00:07,970 --> 00:00:13,110
Dans ce module, nous avons exploré l'authentification des utilisateurs de manière très détaillée.

3
00:00:13,110 --> 00:00:14,705
Maintenant, dans cette affectation,

4
00:00:14,705 --> 00:00:17,905
nous allons travailler plus loin sur l'authentification des utilisateurs.

5
00:00:17,905 --> 00:00:22,965
Nous ajouterons encore une autre catégorie de comptes appelée en tant qu'administrateur.

6
00:00:22,965 --> 00:00:26,880
Un compte Admin est un super compte qui

7
00:00:26,880 --> 00:00:31,460
a beaucoup de privilèges pour effectuer diverses opérations.

8
00:00:31,460 --> 00:00:37,410
Un compte d'utilisateur ordinaire ne peut effectuer que certaines opérations sur notre serveur.

9
00:00:37,410 --> 00:00:43,445
De même, une requête non enregistrée provenant d'un client

10
00:00:43,445 --> 00:00:49,610
qui n'est pas connecté ne peut effectuer que certaines opérations sur notre serveur.

11
00:00:49,610 --> 00:00:52,400
Maintenant, nous allons modifier notre serveur afin

12
00:00:52,400 --> 00:00:55,865
que les opérations get puissent être effectuées par n'importe qui.

13
00:00:55,865 --> 00:01:00,350
Vous n'avez pas besoin de vous connecter au système pour effectuer des opérations get sur les

14
00:01:00,350 --> 00:01:06,110
différents points de terminaison de l'API de repos, à l'exception de la soumission de commentaires.

15
00:01:06,110 --> 00:01:11,625
Pour les opérations restantes sur les points de terminaison de

16
00:01:11,625 --> 00:01:15,365
l'API restants, les opérations de mise et de suppression POST,

17
00:01:15,365 --> 00:01:20,190
celles-ci seront limitées à être effectuées uniquement par les utilisateurs admin,

18
00:01:20,190 --> 00:01:23,780
un utilisateur ordinaire ne peut pas effectuer ces opérations.

19
00:01:23,780 --> 00:01:30,215
Évidemment, vous ne voulez pas qu'un utilisateur ordinaire soumette de nouveaux plats, des promotions

20
00:01:30,215 --> 00:01:34,975
ou des informations de leader, modifie des informations existantes,

21
00:01:34,975 --> 00:01:37,780
ou même supprime ces informations existantes.

22
00:01:37,780 --> 00:01:45,290
Cela devrait être le privilège de l'administrateur système de notre serveur.

23
00:01:45,290 --> 00:01:50,870
En outre, nous veillerons à ce qu'un utilisateur ordinaire puisse

24
00:01:50,870 --> 00:01:56,010
poster des commentaires sur des plats spécifiques, c'est acceptable.

25
00:01:56,010 --> 00:02:03,015
De même, un utilisateur ordinaire peut mettre à jour et supprimer les commentaires qu'il ou elle a postés.

26
00:02:03,015 --> 00:02:10,230
Les autres utilisateurs ou même l'administrateur ne peuvent pas mettre à jour ou supprimer les commentaires postés par un autre utilisateur.

27
00:02:10,230 --> 00:02:14,565
Donc, c'est une autre restriction que nous allons placer sur notre serveur.

28
00:02:14,565 --> 00:02:18,335
Maintenant, allons de l'avant et examinons comment nous allons mettre

29
00:02:18,335 --> 00:02:23,299
en œuvre ceci et comment exactement notre serveur effectue ces opérations.

30
00:02:23,299 --> 00:02:26,720
Tout d'abord, je vais vous illustrer comment vous

31
00:02:26,720 --> 00:02:31,240
créeriez un compte administrateur dans votre système.

32
00:02:31,240 --> 00:02:33,770
Vous vous rendrez compte que nous devons aller

33
00:02:33,770 --> 00:02:37,325
dans les coulisses pour créer un compte administrateur simplement parce que,

34
00:02:37,325 --> 00:02:41,930
nous ne voulons pas qu'un compte administrateur soit créé en effectuant

35
00:02:41,930 --> 00:02:47,030
l'opération d'inscription sur notre compte utilisateurs/inscription.

36
00:02:47,030 --> 00:02:50,670
Cela laissera notre serveur vulnérable aux attaques.

37
00:02:50,670 --> 00:02:54,185
Ainsi, un compte administrateur ne peut être configuré que dans les

38
00:02:54,185 --> 00:02:59,085
coulisses en accédant directement à la base de données.

39
00:02:59,085 --> 00:03:02,090
Alors, regardons comment nous allons faire

40
00:03:02,090 --> 00:03:08,340
cela dans l'illustration que je vais vous montrer juste après.

41
00:03:08,380 --> 00:03:11,700
Maintenant, pour examiner notre base de données,

42
00:03:11,700 --> 00:03:15,865
laissez-moi démarrer l'ondulation Mongo à l'invite de commande,

43
00:03:15,865 --> 00:03:21,740
puis aller dans le dossier de confusion et puis laissez-moi

44
00:03:21,740 --> 00:03:27,830
examiner les utilisateurs qui sont enregistrés dans ma base de données en ce moment.

45
00:03:27,830 --> 00:03:32,015
Donc, vous pouvez voir que je n'ai qu'un seul utilisateur enregistré.

46
00:03:32,015 --> 00:03:35,735
Donc, permettez-moi de mettre en place deux comptes supplémentaires,

47
00:03:35,735 --> 00:03:37,695
un pour

48
00:03:37,695 --> 00:03:40,280
un utilisateur ordinaire, et un qui sera un administrateur.

49
00:03:40,280 --> 00:03:47,415
Donc, nous allons inscrire l'administrateur et le deuxième utilisateur également à partir de notre point d'inscription,

50
00:03:47,415 --> 00:03:51,935
puis ils reviendront sur le Mongo Ripple et ensuite configurer le compte administrateur

51
00:03:51,935 --> 00:03:57,110
explicitement en modifiant l'enregistrement dans notre base de données.

52
00:03:57,110 --> 00:03:58,935
Aller à la broche Postman,

53
00:03:58,935 --> 00:04:03,780
laissez-moi inscrire deux utilisateurs supplémentaires.

54
00:04:03,780 --> 00:04:07,755
Donc, nous avions déjà inscrit un utilisateur avec ce nom,

55
00:04:07,755 --> 00:04:15,660
donc je vais inscrire un autre utilisateur dans mon système,

56
00:04:15,660 --> 00:04:20,945
et donc, un deuxième utilisateur est maintenant enregistré avec succès.

57
00:04:20,945 --> 00:04:24,660
Maintenant, laissez-moi aussi enregistrer un compte administrateur.

58
00:04:24,660 --> 00:04:25,880
Donc, pour le compte admin,

59
00:04:25,880 --> 00:04:31,910
je vais configurer le nom d'utilisateur en tant qu'administrateur, puis j'inscrirai un utilisateur admin.

60
00:04:31,910 --> 00:04:38,545
Donc, nous constatons que nous avons maintenant ajouté deux nouveaux comptes à notre système.

61
00:04:38,545 --> 00:04:40,455
Aller à l'ondulation Mongo,

62
00:04:40,455 --> 00:04:43,870
laissez-moi répéter à nouveau le

63
00:04:43,870 --> 00:04:51,110
db.user.find () et laissez-moi le faire assez pour qu'il semble plus facile à lire.

64
00:04:51,110 --> 00:04:52,845
Donc, quand je fais cela,

65
00:04:52,845 --> 00:04:58,655
vous pouvez voir que nous avons un compte administrateur ici avec le nom d'utilisateur en tant qu'administrateur.

66
00:04:58,655 --> 00:05:00,770
Ignorez le prénom et le nom,

67
00:05:00,770 --> 00:05:05,190
je vais configurer ce prénom et ce nom pour être les mêmes pour tous les trois.

68
00:05:05,190 --> 00:05:12,800
Ensuite, nous avons l'autre compte utilisateur que j'ai configuré avec le nom d'utilisateur ici,

69
00:05:12,800 --> 00:05:17,190
et le troisième compte d'utilisateur que nous avions déjà dans notre base de données.

70
00:05:17,190 --> 00:05:19,750
Donc, maintenant, nous avons trois comptes d'utilisateurs ;

71
00:05:19,750 --> 00:05:22,215
deux comptes d'utilisateurs ici,

72
00:05:22,215 --> 00:05:23,860
et un compte d'administrateur.

73
00:05:23,860 --> 00:05:28,395
Maintenant, bien sûr, vous verrez que dans les comptes d'utilisateurs,

74
00:05:28,395 --> 00:05:32,690
nous avons cet indicateur appelé comme indicateur admin qui est défini sur false pour

75
00:05:32,690 --> 00:05:38,100
tout compte qui est inscrit sur ce point de terminaison /users/signup.

76
00:05:38,100 --> 00:05:40,740
C' est la façon par défaut que vous devez configurer des comptes.

77
00:05:40,740 --> 00:05:44,465
Vous ne pouvez pas autoriser un utilisateur à configurer un compte administrateur

78
00:05:44,465 --> 00:05:48,945
en faisant quoi que ce soit directement sur le point de terminaison de l'API restante.

79
00:05:48,945 --> 00:05:53,600
Au lieu de cela, nous irons dans les coulisses, puis dans le Mongo Ripple,

80
00:05:53,600 --> 00:06:00,510
je vais modifier cet enregistrement pour l'utilisateur admin en

81
00:06:00,510 --> 00:06:07,920
disant db.users.update et ensuite

82
00:06:07,920 --> 00:06:15,205
nous fournirons le nom d'utilisateur en tant qu'administrateur ici.

83
00:06:15,205 --> 00:06:25,470
Donc, nous allons mettre à jour l'enregistrement de verset et puis nous dirons {$set :

84
00:06:25,470 --> 00:06:31,520
rappelez-vous comment nous manipulons le MongoDB alors nous allons

85
00:06:31,520 --> 00:06:39,180
dire {$set : {"admin » : « true »}}.

86
00:06:39,180 --> 00:06:42,980
Donc, ce que nous faisons ici, c'est que nous

87
00:06:42,980 --> 00:06:47,810
recherchons ce compte d'utilisateur avec le nom d'utilisateur admin,

88
00:06:47,810 --> 00:06:52,190
puis nous configurons le drapeau admin sur true

89
00:06:52,190 --> 00:06:58,125
ici en utilisant l'option $set.

90
00:06:58,125 --> 00:07:02,520
Donc, voici comment nous mettrons à jour un compte pour être un compte administrateur.

91
00:07:02,520 --> 00:07:08,010
Donc, vous voyez que cela a modifié les résultats.

92
00:07:08,010 --> 00:07:11,880
Alors, vérifions à nouveau les comptes.

93
00:07:11,880 --> 00:07:13,410
Maintenant, lorsque vous vérifiez le compte,

94
00:07:13,410 --> 00:07:16,140
vous verrez que pour le compte administrateur,

95
00:07:16,140 --> 00:07:19,475
l'indicateur admin est maintenant défini sur true,

96
00:07:19,475 --> 00:07:22,810
donc c'est ainsi que vous finirez par créer un compte administrateur.

97
00:07:22,810 --> 00:07:27,920
Maintenant, le compte Admin comme nous nous attendions a des privilèges supplémentaires.

98
00:07:27,920 --> 00:07:33,400
Donc, une fois que vous avez terminé cette affectation,

99
00:07:33,400 --> 00:07:38,525
vous remarquerez que l'opération get peut être effectuée par n'importe quel utilisateur sur

100
00:07:38,525 --> 00:07:45,080
le /dishes/dishes/aspecificdishendpoint/promotions

101
00:07:45,080 --> 00:07:50,570
et le /promotions/specificpromotionendpoint et de la même manière,

102
00:07:50,570 --> 00:07:52,985
pour les leaders dans les points aussi.

103
00:07:52,985 --> 00:07:55,590
Mais les

104
00:07:55,590 --> 00:08:02,195
opérations POST, put et delete sur ces points de terminaison ne peuvent être effectuées que par les utilisateurs admin.

105
00:08:02,195 --> 00:08:08,110
Maintenant, en plus, le point de terminaison des commentaires,

106
00:08:08,110 --> 00:08:14,110
nous autorisons seulement un utilisateur enregistré qui s'est connecté à

107
00:08:14,110 --> 00:08:20,835
accéder aux commentaires pour un plat spécifique,

108
00:08:20,835 --> 00:08:25,990
nous allons permettre à un utilisateur connecté de poster des commentaires.

109
00:08:25,990 --> 00:08:31,290
Nous avons déjà configuré cela dans l'exercice de sorte

110
00:08:31,290 --> 00:08:34,150
que, lorsque l'utilisateur publie le commentaire, nous avons veillé à vérifier

111
00:08:34,150 --> 00:08:37,150
l'authenticité de l'utilisateur, puis lorsque le commentaire est posté,

112
00:08:37,150 --> 00:08:44,060
nous avons configuré l'identifiant de l'auteur pour le commentaire en utilisant l'ID utilisateur.

113
00:08:44,060 --> 00:08:46,140
Nous l'avons donc déjà terminé.

114
00:08:46,140 --> 00:08:48,625
Mais maintenant, en plus,

115
00:08:48,625 --> 00:08:55,220
pour les opérations de mise et de suppression sur les commentaires,

116
00:08:55,220 --> 00:08:59,480
seul l'utilisateur qui a soumis le commentaire spécifique sera

117
00:08:59,480 --> 00:09:04,180
autorisé à faire des opérations de mise et de suppression sur ses propres commentaires.

118
00:09:04,180 --> 00:09:08,480
Tout autre utilisateur ne peut pas modifier les commentaires de quelqu'un d'autre.

119
00:09:08,480 --> 00:09:13,355
De même, même l'administrateur ne peut pas modifier les commentaires de quelqu'un d'autre,

120
00:09:13,355 --> 00:09:14,960
ni supprimer le commentaire de quelqu'un d'autre.

121
00:09:14,960 --> 00:09:18,850
Donc, c'est la deuxième partie de cette mission que vous allez faire.

122
00:09:18,850 --> 00:09:22,910
La troisième partie est qu'un administrateur peut interroger

123
00:09:22,910 --> 00:09:31,115
le point final /users et demander la liste des utilisateurs enregistrés,

124
00:09:31,115 --> 00:09:35,090
aucun autre utilisateur ordinaire ne peut faire cette requête.

125
00:09:35,090 --> 00:09:38,550
Donc, c'est l'autre restriction que nous allons mettre là-dedans.

126
00:09:38,550 --> 00:09:42,745
Maintenant, afin de vérifier qu'un utilisateur est un administrateur,

127
00:09:42,745 --> 00:09:46,770
nous allons d'abord vérifier que l'utilisateur est un utilisateur enregistré.

128
00:09:46,770 --> 00:09:51,470
Ainsi, la fonction de vérification de l'utilisateur que nous avons déjà implémentée dans le

129
00:09:51,470 --> 00:09:56,450
authenticate.js doit être appliquée même là où vous devez vérifier l'administrateur. Tout d'

130
00:09:56,450 --> 00:09:59,855
abord, vous vérifiez qu'il s'agit d'un utilisateur vérifié, par la suite,

131
00:09:59,855 --> 00:10:05,795
vous introduirez une autre fonction appelée VerifyAdmin dans le

132
00:10:05,795 --> 00:10:12,285
fichier authenticate.js qui vérifiera que l'utilisateur est un administrateur.

133
00:10:12,285 --> 00:10:15,190
Maintenant, pour vérifier si un utilisateur est un administrateur,

134
00:10:15,190 --> 00:10:19,900
tout ce que vous devez faire est de vérifier le rec.user qui se trouve sur

135
00:10:19,900 --> 00:10:24,855
l'objet de requête rec.user là,

136
00:10:24,855 --> 00:10:28,325
vérifiez si l'indicateur admin est vrai ou non.

137
00:10:28,325 --> 00:10:30,375
Si l'indicateur admin est true,

138
00:10:30,375 --> 00:10:39,315
vous autoriserez le processus normal de continuer à [inaudible] arriver.

139
00:10:39,315 --> 00:10:41,570
Si l'utilisateur n'est pas un administrateur,

140
00:10:41,570 --> 00:10:49,075
vous allez générer une erreur et renvoyer un message d'erreur vers le client.

141
00:10:49,075 --> 00:10:53,945
Donc, c'est comme ça que nous allons gérer le compte des utilisateurs admin.

142
00:10:53,945 --> 00:11:03,165
Maintenant, lorsqu'un utilisateur essaie de modifier ou de supprimer ses propres commentaires,

143
00:11:03,165 --> 00:11:06,320
nous devons vérifier que l'auteur du commentaire est le

144
00:11:06,320 --> 00:11:10,245
même que l'utilisateur qui essaie de modifier le commentaire.

145
00:11:10,245 --> 00:11:13,085
Maintenant, le rec.user a également le champ ID,

146
00:11:13,085 --> 00:11:16,860
vous devez donc le vérifier avec le champ auteur du commentaire.

147
00:11:16,860 --> 00:11:18,255
Si ces deux correspondent,

148
00:11:18,255 --> 00:11:22,390
vous autorisez l'utilisateur à effectuer les opérations de mise ou de suppression.

149
00:11:22,390 --> 00:11:24,050
Si elles ne correspondent pas,

150
00:11:24,050 --> 00:11:31,190
vous n'autoriserez pas les opérations put ou delete sur ce commentaire spécifique.

151
00:11:31,190 --> 00:11:33,590
C' est donc l'autre aspect que vous allez mettre

152
00:11:33,590 --> 00:11:37,185
en œuvre dans le cadre de votre troisième mission.

153
00:11:37,185 --> 00:11:40,420
Regardons comment toutes ces choses fonctionnent

154
00:11:40,420 --> 00:11:44,500
en utilisant Postman pour effectuer diverses opérations sur notre serveur.

155
00:11:44,500 --> 00:11:46,545
Pour revenir à Postman,

156
00:11:46,545 --> 00:11:49,725
permettez-moi d'abord d'effectuer une opération GET sur les

157
00:11:49,725 --> 00:11:53,920
plats pour juste vérifier ce qu'il y a dans ma base de données.

158
00:11:53,920 --> 00:11:56,140
Donc, si j'effectue une opération GET sur les plats,

159
00:11:56,140 --> 00:12:00,270
remarquez que je ne mets aucune authentification dans l'en-tête.

160
00:12:00,270 --> 00:12:02,500
L' opération GET est autorisée par n'importe qui.

161
00:12:02,500 --> 00:12:04,420
Donc, quand j'effectue l'opération GET,

162
00:12:04,420 --> 00:12:13,985
je peux voir que j'ai déjà un plat avec un commentaire déjà en place dans ce plat.

163
00:12:13,985 --> 00:12:18,900
Ce commentaire a déjà été posté par cet utilisateur.

164
00:12:18,900 --> 00:12:23,895
Donc, nous avons déjà un plat dans le système là-bas.

165
00:12:23,895 --> 00:12:26,520
Donc, c'est parfaitement bien,

166
00:12:26,520 --> 00:12:28,405
je vais supprimer le plat.

167
00:12:28,405 --> 00:12:29,875
Maintenant, pour supprimer le plat,

168
00:12:29,875 --> 00:12:33,855
évidemment cette opération ne peut pas être effectuée par un utilisateur ordinaire.

169
00:12:33,855 --> 00:12:36,500
Donc, laissez-moi me connecter en tant que,

170
00:12:36,500 --> 00:12:40,310
afin que vous puissiez voir que je me connecte en tant qu'utilisateur régulier.

171
00:12:40,310 --> 00:12:44,940
Donc, laissez-moi me connecter en tant qu'utilisateur régulier.

172
00:12:44,940 --> 00:12:47,140
Donc, quand je me connecte, j'obtiendrai le jeton.

173
00:12:47,140 --> 00:12:49,725
Donc, je vais copier ce jeton et le sauvegarder.

174
00:12:49,725 --> 00:12:53,845
Maintenant, que j'ai mon jeton,

175
00:12:53,845 --> 00:12:58,770
laissez-moi effectuer une opération DELETE sur la vaisselle.

176
00:12:58,770 --> 00:13:01,985
Donc, quand je vais à l'opération DELETE.

177
00:13:01,985 --> 00:13:07,370
Donc, laissez-moi sélectionner ce GET, puis faire une opération DELETE avec les plats.

178
00:13:07,370 --> 00:13:13,440
Dans l'en-tête, permettez-moi d'inclure l'autorisation ici et vous remarqueriez

179
00:13:13,440 --> 00:13:22,144
que lorsque nous collons dans la demande et puis envoyons l'autorisation DELETE,

180
00:13:22,144 --> 00:13:27,325
vous remarquerez qu'il revient immédiatement avec ce message ici,

181
00:13:27,325 --> 00:13:28,990
comme vous pouvez le voir dans l'aperçu,

182
00:13:28,990 --> 00:13:33,510
il dit « Vous n'êtes pas autorisé à effectuer cette opération ! «

183
00:13:33,510 --> 00:13:37,410
Ensuite, le code d'erreur est 403 interdit.

184
00:13:37,410 --> 00:13:41,540
Donc, il s'agit d'un message généré par

185
00:13:41,540 --> 00:13:46,470
la fonction VerifyAdmin que vous allez implémenter dans le cadre de cet exercice.

186
00:13:46,470 --> 00:13:49,720
Donc, si l'utilisateur n'est pas un administrateur,

187
00:13:49,720 --> 00:13:53,085
alors c'est le message que votre VerifyAdmin va

188
00:13:53,085 --> 00:13:57,880
générer et il ne permettra pas à la demande d'aller au-delà de ce point.

189
00:13:57,880 --> 00:14:04,150
Donc, vous pouvez voir que j'ai fermé l'opération DELETE.

190
00:14:04,150 --> 00:14:05,895
Maintenant, comment faites-vous ça ?

191
00:14:05,895 --> 00:14:11,925
Dans votre code, vous avez vu que pour appliquer VerifyUser,

192
00:14:11,925 --> 00:14:16,270
nous avons défini Authenticate.verifyUser dans les

193
00:14:16,270 --> 00:14:18,270
opérations POST, PUT et DELETE.

194
00:14:18,270 --> 00:14:22,105
Maintenant, vous pouvez enchaîner le middleware l'un après l'autre.

195
00:14:22,105 --> 00:14:25,200
Donc, nous pouvons dire Authenticate.VerifyUser virgule

196
00:14:25,200 --> 00:14:28,905
et ensuite vous pouvez dire Authenticate.VerifyAdmin,

197
00:14:28,905 --> 00:14:32,190
pour appliquer le VerifyAdmin juste après le VerifyUser.

198
00:14:32,190 --> 00:14:35,840
Donc, si vous voulez qu'une opération soit limitée uniquement à l'administrateur,

199
00:14:35,840 --> 00:14:39,520
vous faites d'abord la partie VerifyUser, puis immédiatement après cela,

200
00:14:39,520 --> 00:14:42,085
vous appliquez le middleware VerifyAdmin.

201
00:14:42,085 --> 00:14:45,274
Juste après ça. Donc, si ces deux vérifications,

202
00:14:45,274 --> 00:14:49,615
passer avec succès, alors vous allez effectuer l'opération.

203
00:14:49,615 --> 00:14:52,240
Si la vérification VerifyAdmin échoue,

204
00:14:52,240 --> 00:14:54,870
vous retournerez ce message d'erreur comme vous le voyez

205
00:14:54,870 --> 00:14:57,995
ici, puis abandonnez l'opération de cette partie.

206
00:14:57,995 --> 00:15:01,300
Ainsi, vous retournerez l'erreur suivante de votre VerifyAdmin,

207
00:15:01,300 --> 00:15:03,260
si l'utilisateur n'est pas un administrateur.

208
00:15:03,260 --> 00:15:08,100
Donc, je vous ai montré comment vous allez

209
00:15:08,100 --> 00:15:12,865
utiliser le compte d'utilisateurs admin pour restreindre les opérations pour une opération PUT

210
00:15:12,865 --> 00:15:15,285
, POST et DELETE.

211
00:15:15,285 --> 00:15:21,935
Même chose, les opérations POST et PUT ne seront pas autorisées sur l'une de ces parties n.

212
00:15:21,935 --> 00:15:26,360
Maintenant, laissez-moi vous montrer l'autre aspect ici.

213
00:15:26,360 --> 00:15:28,710
Donc, vous avez vu que là-dedans,

214
00:15:28,710 --> 00:15:30,450
quand nous effectuons l'opération GET,

215
00:15:30,450 --> 00:15:37,570
vous avez vu qu'il y avait déjà un commentaire qui a été posté par le nom d'utilisateur Jogesh,

216
00:15:37,570 --> 00:15:40,230
le premier utilisateur qui est dans mon système.

217
00:15:40,230 --> 00:15:43,385
Maintenant, je vais me connecter en tant qu'autre utilisateur.

218
00:15:43,385 --> 00:15:53,080
Donc, je vais me connecter comme dans mon deuxième compte qui est Muppala, puis quand je me connecte,

219
00:15:53,080 --> 00:15:54,175
je reçois à nouveau le jeton.

220
00:15:54,175 --> 00:15:56,585
Alors, laissez-moi prendre ce jeton ici.

221
00:15:56,585 --> 00:15:58,645
Laissez-moi copier ce jeton.

222
00:15:58,645 --> 00:16:04,685
Maintenant, ce que je vais faire c'est que je vais faire un GET sur les plats localhost.

223
00:16:04,685 --> 00:16:12,520
Donc, laissez-moi faire un GET sur les plats localhost pour vous montrer le commentaire spécifique à l'intérieur ici.

224
00:16:12,520 --> 00:16:16,030
Donc, ce commentaire particulier avec cet ID.

225
00:16:16,030 --> 00:16:17,640
Donc, ce que je vais faire, c'est que

226
00:16:17,640 --> 00:16:20,400
je vais copier cette pièce d'identité.

227
00:16:20,400 --> 00:16:26,810
Je vais également copier l'ID de commentaire d'ici et je vais effectuer

228
00:16:26,810 --> 00:16:38,700
une opération DELETE sur ce plat spécifique

229
00:16:38,700 --> 00:16:42,615
et rappeler que nous avons

230
00:16:42,615 --> 00:16:50,980
la barre oblique des commentaires, puis cet ID de commentaire particulier.

231
00:16:50,980 --> 00:16:55,350
Maintenant, rappelez-vous que ce commentaire a été posté par ce nom d'utilisateur,

232
00:16:55,350 --> 00:17:01,120
mais je me suis maintenant connecté en tant que l'autre utilisateur avec un nom d'utilisateur différent.

233
00:17:01,120 --> 00:17:07,075
Donc, quand j'effectue maintenant l'opération DELETE en utilisant l'autre compte,

234
00:17:07,075 --> 00:17:11,950
vous remarquerez immédiatement qu'ici il dit,

235
00:17:11,950 --> 00:17:15,550
« Vous n'êtes pas autorisé à supprimer ce commentaire ! «

236
00:17:15,550 --> 00:17:18,970
Alors ça dit 403, même chose.

237
00:17:18,970 --> 00:17:24,205
Si vous essayez de faire une opération PUT sur ce commentaire spécifique connecté en tant qu'autre utilisateur,

238
00:17:24,205 --> 00:17:30,010
cela dira : « Vous n'êtes pas autorisé à mettre à jour ce commentaire ! »

239
00:17:30,010 --> 00:17:35,340
Donc, les deux PUT, DELETE et UPDATE du commentaire de quelqu'un d'autre ne sont pas autorisés.

240
00:17:35,340 --> 00:17:41,855
Alors maintenant, laissez-moi vous connecter en tant qu'administrateur à ce stade, puis laissez-moi essayer de supprimer

241
00:17:41,855 --> 00:17:50,510
ce commentaire particulier et vous verrez que le même message sera généré.

242
00:17:50,510 --> 00:17:55,890
Ainsi, un administrateur ne peut pas non plus supprimer ou mettre à jour les commentaires de quelqu'un d'autre.

243
00:17:55,890 --> 00:17:57,600
Donc, pour me connecter en tant qu'administrateur,

244
00:17:57,600 --> 00:18:02,785
laissez-moi entrer dans le POST ici et puis laissez-moi me connecter en tant qu'administrateur.

245
00:18:02,785 --> 00:18:08,585
Maintenant, rappelez-vous que ces jetons seront valides pendant 33 600 secondes.

246
00:18:08,585 --> 00:18:12,620
Ainsi, vous pouvez enregistrer ces trois jetons que vous générez pour les trois utilisateurs.

247
00:18:12,620 --> 00:18:16,270
Donc, vous n'avez pas besoin de continuer à vous connecter en tant qu'utilisateur particulier.

248
00:18:16,270 --> 00:18:20,180
Tant que vous utilisez le bon jeton dans l'en-tête,

249
00:18:20,180 --> 00:18:25,670
vos opérations vont très bien identifier les trois utilisateurs différents.

250
00:18:25,670 --> 00:18:28,655
Alors, laissez-moi me connecter en tant qu'administrateur ici.

251
00:18:28,655 --> 00:18:30,670
Donc, quand je me connecte en tant qu'administrateur,

252
00:18:30,670 --> 00:18:31,680
je reçois le jeton ici.

253
00:18:31,680 --> 00:18:34,930
Donc, je vais copier et enregistrer ce jeton.

254
00:18:35,010 --> 00:18:40,800
Rappelez-vous juste quel jeton appartient à qui lorsque vous faites une copie de ceci.

255
00:18:40,800 --> 00:18:45,430
Maintenant, revenant à cela, supprimez l'opération de commentaire.

256
00:18:45,430 --> 00:18:54,575
Je vais aller dans l'en-tête et puis je vais changer cela pour le jeton pour l'

257
00:18:54,575 --> 00:19:00,980
administrateur, puis essayer d'effectuer la même opération DELETE et vous voyez

258
00:19:00,980 --> 00:19:08,420
que même l'administrateur n'est pas autorisé à supprimer le commentaire posté par un autre utilisateur.

259
00:19:08,420 --> 00:19:10,480
C' est tout à fait acceptable.

260
00:19:10,480 --> 00:19:13,095
Mais essayons de supprimer le même commentaire,

261
00:19:13,095 --> 00:19:15,255
par cet utilisateur

262
00:19:15,255 --> 00:19:18,425
qui a créé ce commentaire et vous verrez que cela peut être fait avec succès.

263
00:19:18,425 --> 00:19:20,715
Alors, faisons cette opération.

264
00:19:20,715 --> 00:19:24,720
Donc, pour ce faire, je vais revenir en arrière et récupérer le jeton que j'ai

265
00:19:24,720 --> 00:19:30,345
obtenu pour le premier utilisateur, puis changer le champ Autorisation.

266
00:19:30,345 --> 00:19:33,260
Maintenant, pour cette opération DELETE,

267
00:19:33,260 --> 00:19:35,860
je vais changer ceci en porteur,

268
00:19:35,860 --> 00:19:42,400
et puis c'est le jeton pour le premier utilisateur avec le nom d'utilisateur Jogesh.

269
00:19:42,400 --> 00:19:46,100
Donc, quand j'essaie de supprimer ce commentaire,

270
00:19:46,100 --> 00:19:50,850
vous remarquerez que le commentaire est maintenant supprimé avec succès.

271
00:19:50,850 --> 00:19:53,710
Ainsi, comme vous pouvez le voir dans les étapes,

272
00:19:53,710 --> 00:19:57,830
le commentaire ne peut être supprimé que par l'utilisateur qui a créé ce commentaire.

273
00:19:57,830 --> 00:19:59,120
Maintenant, l'étape suivante,

274
00:19:59,120 --> 00:20:02,345
lorsque nous faisons l'opération DELETE sur la vaisselle,

275
00:20:02,345 --> 00:20:07,120
nous avons vu plus tôt que si nous avons fait l'opération DELETE en tant qu'utilisateur ordinaire,

276
00:20:07,120 --> 00:20:09,400
vous obtenez un message disant :

277
00:20:09,400 --> 00:20:12,010
« Vous n'êtes pas autorisé à effectuer cette opération ! »

278
00:20:12,010 --> 00:20:16,670
Donc, je vais changer ce jeton pour le jeton de l'administrateur, puis

279
00:20:16,670 --> 00:20:21,425
vous montrer qu'un administrateur peut effectuer l'opération DELETE sur la vaisselle et le pot.

280
00:20:21,425 --> 00:20:23,480
Donc, en entrant dans cette requête,

281
00:20:23,480 --> 00:20:30,550
permettez-moi de changer le jeton pour être le jeton pour l'utilisateur admin.

282
00:20:30,550 --> 00:20:34,765
Ainsi, lorsque j'effectue l'opération DELETE en tant qu'utilisateur admin,

283
00:20:34,765 --> 00:20:37,375
vous remarquerez que l'opération DELETE est

284
00:20:37,375 --> 00:20:41,905
réussie et répondez ensuite avec le message ici.

285
00:20:41,905 --> 00:20:45,715
Maintenant, quand je fais un GET sur le point de terminaison vaisselle,

286
00:20:45,715 --> 00:20:52,515
vous remarquerez que les opérations GET montrent que mes plats ont été vidés.

287
00:20:52,515 --> 00:20:59,285
Maintenant, l'autre opération que vous allez également implémenter dans cette affectation,

288
00:20:59,285 --> 00:21:05,670
est que nous pouvons faire une opération GET sur le point de terminaison des utilisateurs de barre oblique.

289
00:21:05,670 --> 00:21:09,285
Ainsi, lorsque vous effectuez une opération GET sur le point de terminaison des utilisateurs de barre oblique,

290
00:21:09,285 --> 00:21:12,690
vous remarquerez que si vous n'êtes pas un utilisateur autorisé,

291
00:21:12,690 --> 00:21:16,450
vous n'êtes pas autorisé à effectuer cette opération.

292
00:21:16,450 --> 00:21:20,850
Donc, le localhost : 3000/users/endpoint, vous

293
00:21:20,850 --> 00:21:27,355
allez maintenant permettre que cela soit effectué uniquement par l'administrateur.

294
00:21:27,355 --> 00:21:29,265
Donc, si un utilisateur ordinaire,

295
00:21:29,265 --> 00:21:32,420
si vous vous connectez en tant qu'utilisateur ordinaire avec l'en-tête,

296
00:21:32,420 --> 00:21:36,510
vous ne serez pas autorisé à effectuer cette opération.

297
00:21:36,510 --> 00:21:42,390
Maintenant, laissez-moi changer ce jeton pour le

298
00:21:42,390 --> 00:21:45,345
jeton de l'administrateur et vous verrez que

299
00:21:45,345 --> 00:21:48,460
l'administrateur sera autorisé à effectuer cette opération.

300
00:21:48,460 --> 00:21:50,135
Donc, aller au GET,

301
00:21:50,135 --> 00:21:55,600
laissez-moi changer ce jeton en jeton pour

302
00:21:55,600 --> 00:22:02,980
l'utilisateur admin et puis quand j'effectue l'opération GET sur cela, il revient.

303
00:22:02,980 --> 00:22:07,945
Comme vous pouvez le voir, les trois utilisateurs qui sont enregistrés dans mon système,

304
00:22:07,945 --> 00:22:11,015
il montre le numéro d'utilisateur un, le

305
00:22:11,015 --> 00:22:13,950
numéro d'utilisateur deux, et le numéro d'utilisateur trois.

306
00:22:13,950 --> 00:22:17,530
Bien sûr, notez que le hachage et le sel sont supprimés,

307
00:22:17,530 --> 00:22:21,965
lorsque le message est renvoyé par le côté serveur vers le côté client.

308
00:22:21,965 --> 00:22:25,490
Ainsi, les informations de hachage et de sel ne seront jamais révélées à l'extérieur.

309
00:22:25,490 --> 00:22:28,755
Ainsi, Mongos s'occupera automatiquement de

310
00:22:28,755 --> 00:22:32,580
filtrer ces informations avant qu'elles ne renvoient les informations de l'utilisateur.

311
00:22:32,580 --> 00:22:35,890
Donc, parce que vous ne devriez pas révéler les

312
00:22:35,890 --> 00:22:39,160
informations de hachage et de sel au monde extérieur.

313
00:22:39,160 --> 00:22:44,510
Donc, il s'agit des trois informations de comptes d'utilisateur qui sont renvoyées.

314
00:22:44,510 --> 00:22:47,835
Par conséquent, cela n'est renvoyé que si vous effectuez l'opération GET sur

315
00:22:47,835 --> 00:22:51,900
le point de terminaison des utilisateurs de barre oblique en tant qu'utilisateur administrateur.

316
00:22:51,900 --> 00:22:56,295
Si vous effectuez la même requête que n'importe quel autre utilisateur,

317
00:22:56,295 --> 00:22:58,055
cela ne sera pas autorisé.

318
00:22:58,055 --> 00:23:01,065
Donc, encore une fois, vous allez vérifier d'abord,

319
00:23:01,065 --> 00:23:05,040
VerifyUser, puis vérifier le VerifyAdmin et seulement si c'est un administrateur,

320
00:23:05,040 --> 00:23:08,940
alors cette opération peut être effectuée sur ce point final.

321
00:23:08,940 --> 00:23:15,535
Donc, ce sont toutes les différentes tâches que vous ferez dans le cadre de cette affectation.

322
00:23:15,535 --> 00:23:22,990
Les instructions relatives à l'affectation décrivent en détail la façon dont ces opérations doivent être effectuées.

323
00:23:22,990 --> 00:23:27,875
Lisez donc les instructions avant de procéder à la troisième affectation.

324
00:23:27,875 --> 00:23:32,380
Amusez-vous à terminer la troisième mission.