1
00:00:03,920 --> 00:00:07,970
Tiempo para la tercera asignación en este curso.

2
00:00:07,970 --> 00:00:13,110
En este módulo, hemos estado explorando la autenticación de usuarios con mucho detalle.

3
00:00:13,110 --> 00:00:14,705
Ahora, en esta asignación,

4
00:00:14,705 --> 00:00:17,905
vamos a trabajar más en la autenticación de usuarios.

5
00:00:17,905 --> 00:00:22,965
Vamos a añadir otra categoría de cuentas llamada como administrador.

6
00:00:22,965 --> 00:00:26,880
Una cuenta de administrador es una supercuenta que tiene

7
00:00:26,880 --> 00:00:31,460
muchos privilegios para realizar varias operaciones.

8
00:00:31,460 --> 00:00:37,410
Una cuenta de usuario normal solo puede realizar ciertas operaciones en nuestro servidor.

9
00:00:37,410 --> 00:00:43,445
Del mismo modo, una solicitud no registrada procedente de un cliente

10
00:00:43,445 --> 00:00:49,610
que no está conectado solo puede realizar ciertas operaciones en nuestro servidor.

11
00:00:49,610 --> 00:00:52,400
Ahora, vamos a modificar nuestro servidor para

12
00:00:52,400 --> 00:00:55,865
que las operaciones de obtención puedan ser realizadas por cualquiera.

13
00:00:55,865 --> 00:01:00,350
No es necesario que inicie sesión en el sistema para realizar operaciones de obtención en

14
00:01:00,350 --> 00:01:06,110
los distintos extremos de API de resto, excepto el envío de comentarios.

15
00:01:06,110 --> 00:01:11,625
Para las operaciones restantes en los puntos finales de API restantes,

16
00:01:11,625 --> 00:01:15,365
las operaciones POST put y delete,

17
00:01:15,365 --> 00:01:20,190
estas serán restringidas para ser realizadas solo por usuarios administradores,

18
00:01:20,190 --> 00:01:23,780
un usuario normal no puede realizar estas operaciones.

19
00:01:23,780 --> 00:01:30,215
Obviamente, no quieres que un usuario ordinario envíe nuevos platos, promociones o

20
00:01:30,215 --> 00:01:34,975
información de líder, o modifique la información existente,

21
00:01:34,975 --> 00:01:37,780
o incluso elimine esta información existente.

22
00:01:37,780 --> 00:01:45,290
Este debe ser el privilegio del administrador del sistema para nuestro servidor.

23
00:01:45,290 --> 00:01:50,870
Además, nos aseguraremos de que un usuario común pueda

24
00:01:50,870 --> 00:01:56,010
publicar comentarios sobre platos específicos, eso es aceptable.

25
00:01:56,010 --> 00:02:03,015
Del mismo modo, un usuario común puede actualizar y eliminar los comentarios que haya publicado.

26
00:02:03,015 --> 00:02:10,230
Otros usuarios o incluso el administrador no pueden actualizar o eliminar comentarios publicados por otro usuario.

27
00:02:10,230 --> 00:02:14,565
Por lo tanto, esta es otra restricción que vamos a colocar en nuestro servidor.

28
00:02:14,565 --> 00:02:18,335
Ahora, vamos a examinar cómo vamos a

29
00:02:18,335 --> 00:02:23,299
implementar esto y cómo exactamente nuestro servidor realiza estas operaciones.

30
00:02:23,299 --> 00:02:26,720
En primer lugar, te ilustraré cómo

31
00:02:26,720 --> 00:02:31,240
crearías una cuenta de administrador en tu sistema.

32
00:02:31,240 --> 00:02:33,770
Te darás cuenta de que tenemos que ir detrás

33
00:02:33,770 --> 00:02:37,325
de escena para crear una cuenta de administrador simplemente porque,

34
00:02:37,325 --> 00:02:41,930
no queremos que se cree una cuenta de administrador realizando

35
00:02:41,930 --> 00:02:47,030
la operación de registro en nuestra cuenta de usuarios/registro.

36
00:02:47,030 --> 00:02:50,670
Esto dejará a nuestro servidor vulnerable a los ataques.

37
00:02:50,670 --> 00:02:54,185
Por lo tanto, una cuenta de administrador solo se puede configurar

38
00:02:54,185 --> 00:02:59,085
detrás de escena accediendo directamente a la base de datos.

39
00:02:59,085 --> 00:03:02,090
Entonces, veamos cómo hacemos

40
00:03:02,090 --> 00:03:08,340
esto en la ilustración que les voy a mostrar justo después.

41
00:03:08,380 --> 00:03:11,700
Ahora, para examinar nuestra base de datos,

42
00:03:11,700 --> 00:03:15,865
permítanme iniciar Mongo Ripple en el símbolo del sistema,

43
00:03:15,865 --> 00:03:21,740
y luego ir a la carpeta de confusión y luego déjeme

44
00:03:21,740 --> 00:03:27,830
examinar los usuarios que están registrados en mi base de datos en este momento.

45
00:03:27,830 --> 00:03:32,015
Por lo tanto, puede ver que solo tengo un usuario registrado.

46
00:03:32,015 --> 00:03:35,735
Por lo tanto, permítanme configurar dos cuentas adicionales,

47
00:03:35,735 --> 00:03:37,695
una para un usuario común,

48
00:03:37,695 --> 00:03:40,280
y otra que va a ser un administrador.

49
00:03:40,280 --> 00:03:47,415
Por lo tanto, registraremos el administrador y el segundo usuario también desde nuestro punto de registro, a

50
00:03:47,415 --> 00:03:51,935
partir de entonces volverán a Mongo Ripple y luego configurarán la cuenta de administrador

51
00:03:51,935 --> 00:03:57,110
explícitamente modificando el registro en nuestra base de datos.

52
00:03:57,110 --> 00:03:58,935
Ir a Postman pin,

53
00:03:58,935 --> 00:04:03,780
permítanme inscribir dos usuarios adicionales.

54
00:04:03,780 --> 00:04:07,755
Por lo tanto, antes habíamos registrado a un usuario con este nombre,

55
00:04:07,755 --> 00:04:15,660
así que voy a registrar a otro usuario en mi sistema,

56
00:04:15,660 --> 00:04:20,945
y por lo tanto, un segundo usuario ahora está registrado correctamente.

57
00:04:20,945 --> 00:04:24,660
Ahora, permítanme también registrar una cuenta de administrador.

58
00:04:24,660 --> 00:04:25,880
Por lo tanto, para la cuenta de administrador,

59
00:04:25,880 --> 00:04:31,910
configuraré el nombre de usuario como admin y luego registraré a un usuario administrador.

60
00:04:31,910 --> 00:04:38,545
Por lo tanto, vemos que ahora hemos añadido dos cuentas nuevas a nuestro sistema.

61
00:04:38,545 --> 00:04:40,455
Ir a Mongo Ripple,

62
00:04:40,455 --> 00:04:43,870
permítanme repetir de nuevo el

63
00:04:43,870 --> 00:04:51,110
db.user.find () y déjeme hacerlo bastante para que parezca más fácil de leer.

64
00:04:51,110 --> 00:04:52,845
Entonces, cuando hago esto,

65
00:04:52,845 --> 00:04:58,655
puedes ver que tenemos una cuenta de administrador aquí con el nombre de usuario como administrador.

66
00:04:58,655 --> 00:05:00,770
Ignore el nombre y el apellido,

67
00:05:00,770 --> 00:05:05,190
configuraré este nombre y apellido para que sean los mismos para los tres.

68
00:05:05,190 --> 00:05:12,800
Luego, tenemos la otra cuenta de usuario que he configurado con el nombre de usuario aquí,

69
00:05:12,800 --> 00:05:17,190
y la tercera cuenta de usuario que ya teníamos en nuestra base de datos.

70
00:05:17,190 --> 00:05:19,750
Por lo tanto, ahora tenemos tres cuentas de usuario;

71
00:05:19,750 --> 00:05:22,215
dos cuentas de usuario aquí,

72
00:05:22,215 --> 00:05:23,860
y una cuenta de administrador.

73
00:05:23,860 --> 00:05:28,395
Ahora, por supuesto, verá que en las cuentas de usuario,

74
00:05:28,395 --> 00:05:32,690
tenemos este indicador llamado como el indicador de administrador que se establece en falso para

75
00:05:32,690 --> 00:05:38,100
cualquier cuenta que esté registrada en este endpoint /users/registrnup.

76
00:05:38,100 --> 00:05:40,740
Esta es la forma predeterminada de configurar cuentas.

77
00:05:40,740 --> 00:05:44,465
No puede permitir que un usuario configure una cuenta de administrador

78
00:05:44,465 --> 00:05:48,945
haciendo nada directamente en el extremo de API de resto.

79
00:05:48,945 --> 00:05:53,600
En su lugar, vamos a ir detrás de escena y luego en Mongo Ripple,

80
00:05:53,600 --> 00:06:00,510
voy a modificar este registro para el usuario admin

81
00:06:00,510 --> 00:06:07,920
diciendo db.users.update y luego

82
00:06:07,920 --> 00:06:15,205
vamos a proporcionar el nombre de usuario como admin aquí.

83
00:06:15,205 --> 00:06:25,470
Por lo tanto, vamos a actualizar el registro de versículos y luego diremos {$set:

84
00:06:25,470 --> 00:06:31,520
recuerde cómo estábamos manipulando el MongoDB así que

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

86
00:06:39,180 --> 00:06:42,980
lo tanto, lo que estamos haciendo aquí es que estamos

87
00:06:42,980 --> 00:06:47,810
buscando esta cuenta de usuario con el nombre de usuario admin,

88
00:06:47,810 --> 00:06:52,190
y luego estamos configurando el indicador admin a true

89
00:06:52,190 --> 00:06:58,125
aquí usando la opción $set.

90
00:06:58,125 --> 00:07:02,520
Por lo tanto, así es como actualizaríamos una cuenta para ser una cuenta de administrador.

91
00:07:02,520 --> 00:07:08,010
Por lo tanto, verá que esto ha modificado los resultados.

92
00:07:08,010 --> 00:07:11,880
Entonces, volvamos a revisar las cuentas.

93
00:07:11,880 --> 00:07:13,410
Ahora, cuando revises la cuenta,

94
00:07:13,410 --> 00:07:16,140
verás que para la cuenta de administrador,

95
00:07:16,140 --> 00:07:19,475
el indicador de administrador ahora está establecido en true,

96
00:07:19,475 --> 00:07:22,810
así es como terminarás creando una cuenta de administrador.

97
00:07:22,810 --> 00:07:27,920
Ahora, la cuenta de administrador como cabría esperar tiene privilegios adicionales.

98
00:07:27,920 --> 00:07:33,400
Por lo tanto, una vez que complete esta tarea,

99
00:07:33,400 --> 00:07:38,525
notará que la operación get puede ser realizada por cualquier usuario en

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

101
00:07:45,080 --> 00:07:50,570
y /promotions/specificpromotionendpoint y de manera similar,

102
00:07:50,570 --> 00:07:52,985
para los líderes en puntos también.

103
00:07:52,985 --> 00:07:55,590
Pero las

104
00:07:55,590 --> 00:08:02,195
operaciones POST, put y delete en estos extremos solo pueden ser realizadas por usuarios administradores.

105
00:08:02,195 --> 00:08:08,110
Ahora, además, el punto final de comentarios,

106
00:08:08,110 --> 00:08:14,110
permitiríamos que sólo un usuario registrado que ha iniciado sesión para

107
00:08:14,110 --> 00:08:20,835
acceder a los comentarios para un plato específico,

108
00:08:20,835 --> 00:08:25,990
permitiremos que un usuario conectado para publicar comentarios.

109
00:08:25,990 --> 00:08:28,730
Ya hemos configurado esto en el ejercicio, por lo que,

110
00:08:28,730 --> 00:08:31,290
cuando el usuario publica el comentario,

111
00:08:31,290 --> 00:08:34,150
nos hemos asegurado de verificar

112
00:08:34,150 --> 00:08:37,150
la autenticidad del usuario y, a continuación, cuando se publique el comentario,

113
00:08:37,150 --> 00:08:44,060
hemos configurado el ID de autor para el comentario utilizando el ID de usuario.

114
00:08:44,060 --> 00:08:46,140
Por lo tanto, ya lo hemos completado.

115
00:08:46,140 --> 00:08:48,625
Pero ahora, además,

116
00:08:48,625 --> 00:08:55,220
para las operaciones de poner y eliminar en los comentarios,

117
00:08:55,220 --> 00:08:59,480
solo el usuario que haya enviado el comentario específico

118
00:08:59,480 --> 00:09:04,180
podrá hacer operaciones de poner y eliminar en sus propios comentarios.

119
00:09:04,180 --> 00:09:08,480
Cualquier otro usuario no puede modificar los comentarios de otra persona.

120
00:09:08,480 --> 00:09:13,355
Del mismo modo, incluso el administrador no puede modificar los comentarios de otra persona

121
00:09:13,355 --> 00:09:14,960
ni eliminar los comentarios de otra persona.

122
00:09:14,960 --> 00:09:18,850
Así que, esa es la segunda parte de esta tarea que vas a hacer.

123
00:09:18,850 --> 00:09:22,910
La tercera parte es que un administrador puede consultar

124
00:09:22,910 --> 00:09:31,115
el punto final /users y pedir la lista de usuarios registrados,

125
00:09:31,115 --> 00:09:35,090
ningún otro usuario ordinario puede hacer esta consulta.

126
00:09:35,090 --> 00:09:38,550
Así que, esta es la otra restricción que vamos a poner ahí.

127
00:09:38,550 --> 00:09:42,745
Ahora, para verificar que un usuario es un administrador,

128
00:09:42,745 --> 00:09:46,770
primero verificaremos que el usuario es un usuario registrado.

129
00:09:46,770 --> 00:09:51,470
Por lo tanto, la función de verificación de usuario que ya hemos implementado en

130
00:09:51,470 --> 00:09:56,450
authenticate.js debe aplicarse incluso donde necesite verificar el administrador.

131
00:09:56,450 --> 00:09:59,855
Primero, comprueba que es un usuario verificado, a partir de

132
00:09:59,855 --> 00:10:05,795
entonces, introducirá otra función llamada VerifyAdmin en el

133
00:10:05,795 --> 00:10:12,285
archivo authenticate.js que comprobará para asegurarse de que el usuario es un administrador.

134
00:10:12,285 --> 00:10:15,190
Ahora, para verificar si un usuario es un administrador,

135
00:10:15,190 --> 00:10:19,900
todo lo que necesita hacer es verificar el rec.user que está en

136
00:10:19,900 --> 00:10:24,855
el objeto de solicitud rec.user allí,

137
00:10:24,855 --> 00:10:28,325
verifique si el indicador admin es verdadero o no.

138
00:10:28,325 --> 00:10:30,375
Si el indicador admin es verdadero,

139
00:10:30,375 --> 00:10:39,315
permitirá que el proceso normal de continuar con el [inaudible] suceda.

140
00:10:39,315 --> 00:10:41,570
Si el usuario no es un administrador,

141
00:10:41,570 --> 00:10:49,075
generará un error y devolverá un mensaje de error al lado del cliente.

142
00:10:49,075 --> 00:10:53,945
Por lo tanto, así es como vamos a manejar la cuenta de usuarios administradores.

143
00:10:53,945 --> 00:11:03,165
Ahora, cuando un usuario está tratando de modificar o eliminar sus propios comentarios,

144
00:11:03,165 --> 00:11:06,320
tenemos que comprobar que el autor del comentario es el

145
00:11:06,320 --> 00:11:10,245
mismo que el usuario que está tratando de modificar el comentario.

146
00:11:10,245 --> 00:11:13,085
Ahora, el rec.user también tiene el campo ID,

147
00:11:13,085 --> 00:11:16,860
por lo que debe cruzarlo con el campo autor del comentario.

148
00:11:16,860 --> 00:11:18,255
Si estos dos coinciden,

149
00:11:18,255 --> 00:11:22,390
entonces permitirá al usuario realizar las operaciones de poner o eliminar.

150
00:11:22,390 --> 00:11:24,050
Si no coinciden,

151
00:11:24,050 --> 00:11:31,190
entonces no permitirá las operaciones de poner o eliminar en ese comentario específico.

152
00:11:31,190 --> 00:11:33,590
Así que este es el otro aspecto que vas

153
00:11:33,590 --> 00:11:37,185
a implementar como parte de tu tercera tarea.

154
00:11:37,185 --> 00:11:40,420
Veamos cómo funcionan todas estas cosas

155
00:11:40,420 --> 00:11:44,500
mediante el uso de Postman para realizar varias operaciones en nuestro servidor.

156
00:11:44,500 --> 00:11:46,545
Volviendo a Postman,

157
00:11:46,545 --> 00:11:49,725
permítanme primero realizar una operación GET en

158
00:11:49,725 --> 00:11:53,920
los platos para solo verificar qué hay en mi base de datos.

159
00:11:53,920 --> 00:11:56,140
Por lo tanto, si realizo una operación GET en los platos,

160
00:11:56,140 --> 00:12:00,270
observe que no estoy poniendo ninguna autenticación en el encabezado.

161
00:12:00,270 --> 00:12:02,500
La operación GET está permitida por cualquiera.

162
00:12:02,500 --> 00:12:04,420
Entonces, cuando realizo la operación GET,

163
00:12:04,420 --> 00:12:13,985
puedo ver que ya tengo un plato con un comentario ya en su lugar en ese plato.

164
00:12:13,985 --> 00:12:18,900
Este comentario ya fue publicado por este usuario.

165
00:12:18,900 --> 00:12:23,895
Entonces, ya tenemos un plato en el sistema allí.

166
00:12:23,895 --> 00:12:26,520
Entonces, esto está perfectamente bien,

167
00:12:26,520 --> 00:12:28,405
voy a eliminar el plato.

168
00:12:28,405 --> 00:12:29,875
Ahora, para eliminar el plato,

169
00:12:29,875 --> 00:12:33,855
obviamente esa operación no puede ser realizada por un usuario ordinario.

170
00:12:33,855 --> 00:12:36,500
Por lo tanto, déjame iniciar sesión como,

171
00:12:36,500 --> 00:12:40,310
para que pueda ver que estoy iniciando sesión como un usuario normal.

172
00:12:40,310 --> 00:12:44,940
Por lo tanto, permítanme iniciar sesión como usuario regular.

173
00:12:44,940 --> 00:12:47,140
Entonces, cuando inicie sesión, obtendré el token.

174
00:12:47,140 --> 00:12:49,725
Entonces, voy a copiar este token y guardarlo.

175
00:12:49,725 --> 00:12:53,845
Ahora, que tengo mi token,

176
00:12:53,845 --> 00:12:58,770
permítanme realizar una operación DELETE en los platos.

177
00:12:58,770 --> 00:13:01,985
Entonces, cuando voy a la operación DELETE.

178
00:13:01,985 --> 00:13:07,370
Entonces, déjame seleccionar este GET y luego hacer una operación DELETE con los platos.

179
00:13:07,370 --> 00:13:13,440
En el encabezado, permítanme incluir la autorización aquí y notarían

180
00:13:13,440 --> 00:13:22,144
que cuando pegamos en la solicitud y luego enviamos la autorización DELETE,

181
00:13:22,144 --> 00:13:27,325
notarían que inmediatamente regresa con este mensaje aquí,

182
00:13:27,325 --> 00:13:28,990
como se puede ver en la vista previa,

183
00:13:28,990 --> 00:13:33,510
dice «Usted no está autorizado a realizar esta operación! «

184
00:13:33,510 --> 00:13:37,410
Entonces el código de error está prohibido 403.

185
00:13:37,410 --> 00:13:41,540
Por lo tanto, este es un mensaje que ha generado

186
00:13:41,540 --> 00:13:46,470
la función VerifyAdmin que va a implementar como parte de este ejercicio.

187
00:13:46,470 --> 00:13:49,720
Por lo tanto, si el usuario no es un administrador,

188
00:13:49,720 --> 00:13:53,085
entonces este es el mensaje que su VerifyAdmin

189
00:13:53,085 --> 00:13:57,880
generará y no permitirá que la solicitud vaya más allá de ese punto.

190
00:13:57,880 --> 00:14:04,150
Por lo tanto, puede ver que he cerrado la operación DELETE.

191
00:14:04,150 --> 00:14:05,895
Ahora, ¿cómo haces esto?

192
00:14:05,895 --> 00:14:11,925
En su código, ha visto que para aplicar VerifyUser,

193
00:14:11,925 --> 00:14:16,270
configuramos Authenticate.VerifyUser en las

194
00:14:16,270 --> 00:14:18,270
operaciones POST, PUT y DELETE.

195
00:14:18,270 --> 00:14:22,105
Ahora, puede encadenar el middleware uno tras otro.

196
00:14:22,105 --> 00:14:25,200
Por lo tanto, podemos decir Authenticate.VerifyUser coma

197
00:14:25,200 --> 00:14:28,905
y luego siguiente puede decir Authenticate.VerifyAdmin,

198
00:14:28,905 --> 00:14:32,190
para aplicar el VerifyAdmin justo después del VerifyUser.

199
00:14:32,190 --> 00:14:35,840
Por lo tanto, si desea que una operación se restrinja solo al administrador,

200
00:14:35,840 --> 00:14:39,520
primero haga la parte VerifyUser y luego inmediatamente después de eso,

201
00:14:39,520 --> 00:14:42,085
aplique el middleware VerifyAdmin.

202
00:14:42,085 --> 00:14:45,274
Justo después de eso. Por lo tanto, si estas dos comprobaciones

203
00:14:45,274 --> 00:14:49,615
, pasan con éxito, entonces pasará a realizar la operación.

204
00:14:49,615 --> 00:14:52,240
Si se produce un error en la comprobación VerifyAdmin,

205
00:14:52,240 --> 00:14:54,870
devolverá este mensaje de error como se ve

206
00:14:54,870 --> 00:14:57,995
aquí y, a continuación, abortará la operación de esa parte.

207
00:14:57,995 --> 00:15:01,300
Por lo tanto, devolverá el siguiente error de su VerifyAdmin,

208
00:15:01,300 --> 00:15:03,260
si el usuario no es un administrador.

209
00:15:03,260 --> 00:15:08,100
Por lo tanto, le he demostrado cómo va a

210
00:15:08,100 --> 00:15:12,865
usar la cuenta de usuarios de administrador para restringir las operaciones de

211
00:15:12,865 --> 00:15:15,285
PUT, POST y DELETE operaciones.

212
00:15:15,285 --> 00:15:21,935
Lo mismo, las operaciones POST y PUT tampoco serán permitidas en cualquiera de estas n partes.

213
00:15:21,935 --> 00:15:26,360
Ahora, permítanme demostrar el otro aspecto aquí.

214
00:15:26,360 --> 00:15:28,710
Entonces, viste que allí,

215
00:15:28,710 --> 00:15:30,450
cuando realizamos la operación GET,

216
00:15:30,450 --> 00:15:37,570
viste que ya había un comentario que fue publicado por el nombre de usuario Jogesh,

217
00:15:37,570 --> 00:15:40,230
el primer usuario que está en mi sistema.

218
00:15:40,230 --> 00:15:43,385
Ahora, voy a iniciar sesión como el otro usuario.

219
00:15:43,385 --> 00:15:53,080
Por lo tanto, iniciaré sesión como en mi segunda cuenta que es Muppala y luego cuando inicie sesión,

220
00:15:53,080 --> 00:15:54,175
obtendré nuevamente el token.

221
00:15:54,175 --> 00:15:56,585
Así que, déjame tomar este token aquí.

222
00:15:56,585 --> 00:15:58,645
Déjame copiar este token.

223
00:15:58,645 --> 00:16:04,685
Ahora, lo que voy a hacer es hacer un GET en los platos localhost.

224
00:16:04,685 --> 00:16:12,520
Por lo tanto, déjame hacer un GET en los platos localhost para mostrarte el comentario específico dentro de aquí.

225
00:16:12,520 --> 00:16:16,030
Por lo tanto, este comentario en particular con este ID.

226
00:16:16,030 --> 00:16:17,640
Así que, lo que voy a hacer es

227
00:16:17,640 --> 00:16:20,400
copiar esa identificación del plato.

228
00:16:20,400 --> 00:16:26,810
También voy a copiar el ID de comentario desde aquí y voy a realizar

229
00:16:26,810 --> 00:16:38,700
una operación DELETE en este plato específico

230
00:16:38,700 --> 00:16:42,615
y recordar que tenemos

231
00:16:42,615 --> 00:16:50,980
la barra diagonal de comentarios y luego este ID de comentario en particular.

232
00:16:50,980 --> 00:16:55,350
Ahora, recuerde que este comentario fue publicado por este nombre de usuario,

233
00:16:55,350 --> 00:17:01,120
pero ahora he iniciado sesión como el otro usuario con un nombre de usuario diferente.

234
00:17:01,120 --> 00:17:07,075
Entonces, cuando ahora realizo la operación DELETE usando la otra cuenta,

235
00:17:07,075 --> 00:17:11,950
inmediatamente notarías que aquí dice:

236
00:17:11,950 --> 00:17:15,550
«¡No estás autorizado a eliminar este comentario! «

237
00:17:15,550 --> 00:17:18,970
Entonces dice 403, lo mismo.

238
00:17:18,970 --> 00:17:24,205
Si intenta realizar una operación PUT en ese comentario específico iniciado como otro usuario

239
00:17:24,205 --> 00:17:30,010
, dirá: «¡No está autorizado a actualizar este comentario!»

240
00:17:30,010 --> 00:17:35,340
Por lo tanto, tanto PUT, DELETE como UPDATE del comentario de otra persona no están permitidos.

241
00:17:35,340 --> 00:17:41,855
Así que ahora, déjame iniciar sesión como administrador en este punto y luego déjame tratar de eliminar

242
00:17:41,855 --> 00:17:50,510
ese comentario en particular y verías que se generará el mismo mensaje.

243
00:17:50,510 --> 00:17:55,890
Por lo tanto, un administrador tampoco puede eliminar o actualizar los comentarios de otra persona.

244
00:17:55,890 --> 00:17:57,600
Por lo tanto, para iniciar sesión como administrador,

245
00:17:57,600 --> 00:18:02,785
déjame entrar en la POST aquí y luego déjame iniciar sesión como administrador.

246
00:18:02,785 --> 00:18:08,585
Ahora, recuerde que estos tokens serán válidos durante 33.600 segundos.

247
00:18:08,585 --> 00:18:12,620
Por lo tanto, puede guardar estos tres tokens que genera para los tres usuarios.

248
00:18:12,620 --> 00:18:16,270
Por lo tanto, no es necesario seguir iniciando sesión como ese usuario en particular.

249
00:18:16,270 --> 00:18:20,180
Siempre y cuando use el token correcto en el encabezado,

250
00:18:20,180 --> 00:18:25,670
sus operaciones funcionarán bien identificando a los tres usuarios diferentes.

251
00:18:25,670 --> 00:18:28,655
Por lo tanto, déjame iniciar sesión como administrador aquí.

252
00:18:28,655 --> 00:18:30,670
Entonces, cuando inicio sesión como administrador,

253
00:18:30,670 --> 00:18:31,680
obtengo el token aquí.

254
00:18:31,680 --> 00:18:34,930
Entonces, voy a copiar y guardar este token.

255
00:18:35,010 --> 00:18:40,800
Solo recuerde qué token pertenece a quién cuando haga una copia de esto.

256
00:18:40,800 --> 00:18:45,430
Ahora, volviendo a esto, eliminar la operación de comentario.

257
00:18:45,430 --> 00:18:54,575
Voy a entrar en el encabezado y luego voy a cambiar esto al token para

258
00:18:54,575 --> 00:19:00,980
el administrador y luego tratar de realizar la misma operación DELETE y luego ves

259
00:19:00,980 --> 00:19:08,420
que incluso el administrador no está autorizado para eliminar el comentario publicado por otro usuario.

260
00:19:08,420 --> 00:19:10,480
Esto es perfectamente aceptable.

261
00:19:10,480 --> 00:19:13,095
Pero tratemos de eliminar el mismo comentario,

262
00:19:13,095 --> 00:19:15,255
por este usuario que creó

263
00:19:15,255 --> 00:19:18,425
ese comentario y verías que eso se puede hacer con éxito.

264
00:19:18,425 --> 00:19:20,715
Entonces, vamos a realizar esa operación.

265
00:19:20,715 --> 00:19:24,720
Entonces, para hacer eso, volveré y buscaré el token que

266
00:19:24,720 --> 00:19:30,345
tengo para el primer usuario y luego cambiaré el campo Autorización.

267
00:19:30,345 --> 00:19:33,260
Ahora, para esta operación DELETE,

268
00:19:33,260 --> 00:19:35,860
voy a cambiar esto a portador,

269
00:19:35,860 --> 00:19:42,400
y luego este es el token para el primer usuario con el nombre de usuario Jogesh.

270
00:19:42,400 --> 00:19:46,100
Por lo tanto, cuando intente eliminar ese comentario,

271
00:19:46,100 --> 00:19:50,850
notará que el comentario ahora se elimina con éxito.

272
00:19:50,850 --> 00:19:53,710
Por lo tanto, como puede ver en los pasos,

273
00:19:53,710 --> 00:19:57,830
el comentario solo puede ser eliminado por el usuario que creó ese comentario.

274
00:19:57,830 --> 00:19:59,120
Ahora, el siguiente paso,

275
00:19:59,120 --> 00:20:02,345
cuando hacemos la operación DELETE en los platos,

276
00:20:02,345 --> 00:20:07,120
vimos anteriormente que si realizamos la operación DELETE como un usuario común,

277
00:20:07,120 --> 00:20:09,400
aparece un mensaje que dice:

278
00:20:09,400 --> 00:20:12,010
«¡No está autorizado para realizar esta operación!»

279
00:20:12,010 --> 00:20:16,670
Por lo tanto, voy a cambiar este token al token del administrador y luego

280
00:20:16,670 --> 00:20:21,425
le mostraré que un administrador puede realizar la operación DELETE en los platos y la olla.

281
00:20:21,425 --> 00:20:23,480
Entonces, al entrar en esta solicitud,

282
00:20:23,480 --> 00:20:30,550
permítanme cambiar el token para que sea el token para el usuario administrador.

283
00:20:30,550 --> 00:20:34,765
Por lo tanto, cuando realice la operación DELETE como usuario administrador,

284
00:20:34,765 --> 00:20:37,375
notará que la operación DELETE es

285
00:20:37,375 --> 00:20:41,905
exitosa y luego responderá con el mensaje aquí.

286
00:20:41,905 --> 00:20:45,715
Ahora, cuando hago un GET en el extremo de los platos,

287
00:20:45,715 --> 00:20:52,515
se dará cuenta de que las operaciones GET muestran que mis platos se han vaciado.

288
00:20:52,515 --> 00:20:59,285
Ahora, la otra operación que también implementará en esta asignación,

289
00:20:59,285 --> 00:21:05,670
es que podemos hacer una operación GET en el extremo de los usuarios de barra diagonal.

290
00:21:05,670 --> 00:21:09,285
Por lo tanto, cuando realice una operación GET en el extremo de usuarios de barra diagonal,

291
00:21:09,285 --> 00:21:12,690
notará que si no

292
00:21:12,690 --> 00:21:16,450
es un usuario autorizado, dirá que no está autorizado para realizar esta operación.

293
00:21:16,450 --> 00:21:20,850
Por lo tanto, el localhost: 3000/users/endpoint,

294
00:21:20,850 --> 00:21:27,355
ahora va a permitir que esto sea realizado solo por el administrador.

295
00:21:27,355 --> 00:21:29,265
Por lo tanto, si un usuario común,

296
00:21:29,265 --> 00:21:32,420
si inicia sesión como un usuario común con el encabezado,

297
00:21:32,420 --> 00:21:36,510
no se le permitirá realizar esta operación.

298
00:21:36,510 --> 00:21:42,390
Ahora, permítanme cambiar este token por

299
00:21:42,390 --> 00:21:45,345
el token fuera del administrador y luego verá que

300
00:21:45,345 --> 00:21:48,460
el administrador podrá realizar esta operación.

301
00:21:48,460 --> 00:21:50,135
Entonces, yendo a GET,

302
00:21:50,135 --> 00:21:55,600
permítanme cambiar este token al token para

303
00:21:55,600 --> 00:22:02,980
el usuario administrador y luego cuando realice la operación GET en eso, regresa.

304
00:22:02,980 --> 00:22:07,945
Como puede ver, los tres usuarios que están registrados en mi sistema,

305
00:22:07,945 --> 00:22:11,015
muestra el usuario número uno, el

306
00:22:11,015 --> 00:22:13,950
usuario número dos y el usuario número tres.

307
00:22:13,950 --> 00:22:17,530
Por supuesto, observe que el hash y la sal se eliminan,

308
00:22:17,530 --> 00:22:21,965
cuando el mensaje es devuelto por el lado del servidor al lado del cliente.

309
00:22:21,965 --> 00:22:25,490
Por lo tanto, la información de hash y sal nunca se revelará fuera.

310
00:22:25,490 --> 00:22:28,755
Por lo tanto, Mongos se encargará automáticamente de

311
00:22:28,755 --> 00:22:32,580
filtrar esa información antes de enviar de vuelta la información del usuario.

312
00:22:32,580 --> 00:22:35,890
Entonces, porque no deberías estar revelando la

313
00:22:35,890 --> 00:22:39,160
información de hachís y sal al mundo exterior.

314
00:22:39,160 --> 00:22:44,510
Por lo tanto, esta es la información de tres cuentas de usuario que se devuelve.

315
00:22:44,510 --> 00:22:47,835
Por lo tanto, esto sólo se devuelve si realiza la operación GET en

316
00:22:47,835 --> 00:22:51,900
el extremo de usuarios de barra diagonal como el usuario administrador.

317
00:22:51,900 --> 00:22:56,295
Si realiza la misma solicitud que cualquier otro usuario,

318
00:22:56,295 --> 00:22:58,055
esto no estará permitido.

319
00:22:58,055 --> 00:23:01,065
Por lo tanto, nuevamente

320
00:23:01,065 --> 00:23:05,040
verificará primero, verifyUser y luego verificará VerifyAdmin y solo si es un administrador,

321
00:23:05,040 --> 00:23:08,940
entonces esta operación se puede realizar en este punto final.

322
00:23:08,940 --> 00:23:15,535
Por lo tanto, estas son todas las diversas tareas que hará como parte de esta asignación.

323
00:23:15,535 --> 00:23:22,990
Los detalles de cómo deben hacerse se documentan en las instrucciones de asignación.

324
00:23:22,990 --> 00:23:27,875
Por lo tanto, lea las instrucciones antes de proceder a completar la tercera asignación.

325
00:23:27,875 --> 00:23:32,380
Diviértete completando la tercera tarea.