1
00:00:00,000 --> 00:00:05,021
[MUSIC]

2
00:00:05,021 --> 00:00:09,395
Ahora que hemos entendido la necesidad de autenticación básica en nuestra

3
00:00:09,395 --> 00:00:14,383
aplicación Express, procedamos al ejercicio en el que agregaremos

4
00:00:14,383 --> 00:00:19,372
autenticación básica al servidor ConFusion que hemos estado desarrollando hasta ahora,

5
00:00:19,372 --> 00:00:21,311
el servidor Express REST API.

6
00:00:22,470 --> 00:00:24,050
A lo largo del camino,

7
00:00:24,050 --> 00:00:29,170
aprenderemos cómo podemos usar la autenticación básica dentro de nuestro servidor.

8
00:00:29,170 --> 00:00:34,811
Y luego, en ejercicios posteriores, ampliaremos esta idea aún más

9
00:00:34,811 --> 00:00:41,107
para agregar un servicio de autenticación completo para nuestro servidor Express REST API.

10
00:00:42,965 --> 00:00:46,576
En este ejercicio, iremos al servidor ConFusion, en

11
00:00:46,576 --> 00:00:49,290
lo que hemos estado trabajando hasta ahora.

12
00:00:49,290 --> 00:00:54,333
Así que usted debe haber completado la implementación de la segunda asignación por

13
00:00:54,333 --> 00:00:59,553
ahora, donde usted habría desarrollado las promociones y el modelo de líderes.

14
00:00:59,553 --> 00:01:04,289
Y también actualizó las rutas para el enrutador líder y

15
00:01:04,289 --> 00:01:09,470
el enrutador promocional en su aplicación de servidor ConFusion.

16
00:01:09,470 --> 00:01:12,960
Entonces, dentro de este código, vayamos a app.js y

17
00:01:12,960 --> 00:01:17,392
luego agreguemos la autenticación básica en app.js.

18
00:01:17,392 --> 00:01:22,290
Entonces, en app.js como hemos entendido sobre la forma en

19
00:01:22,290 --> 00:01:26,970
que funciona el medio en la aplicación Express.

20
00:01:26,970 --> 00:01:31,010
Así que comenzamos aquí en el app.js

21
00:01:31,010 --> 00:01:36,640
importando todos los diversos módulos de nodo aquí.

22
00:01:36,640 --> 00:01:42,650
Y luego, después de eso, comenzamos aquí diciendo primero app.use logger dev.

23
00:01:42,650 --> 00:01:46,410
Así que todo esto se va a aplicar a nuestra aplicación.

24
00:01:46,410 --> 00:01:51,978
Y luego, esta llamada aquí app.use (express.static)

25
00:01:51,978 --> 00:01:58,128
es lo que nos permite servir datos estáticos de la carpeta pública.

26
00:01:58,128 --> 00:02:03,068
Ahora, quieren hacer la autenticación justo antes de

27
00:02:03,068 --> 00:02:08,870
permitir que el cliente pueda obtener datos de nuestro servidor.

28
00:02:08,870 --> 00:02:14,570
Así que ahí mismo, vamos a entrar y añadir una insignia de autenticación.

29
00:02:14,570 --> 00:02:18,090
Así que te das cuenta de que todo lo que viene después de esto,

30
00:02:18,090 --> 00:02:22,970
todo el middleware que está montado y viene después de este punto en particular.

31
00:02:22,970 --> 00:02:27,070
Tendremos que pasar por la fase de autorización antes de

32
00:02:27,070 --> 00:02:29,550
que el middleware pueda tener acceso.

33
00:02:29,550 --> 00:02:34,709
Así que ahí mismo, voy a agregar en app.use y

34
00:02:34,709 --> 00:02:41,600
luego agregar una función llamada auth, que voy a implementar en este momento.

35
00:02:41,600 --> 00:02:46,180
Así que al hacer esto, lo que estamos especificando es el predeterminado,

36
00:02:46,180 --> 00:02:50,200
el cliente puede acceder a cualquiera de estos,

37
00:02:50,200 --> 00:02:56,070
ya sea sus recursos estáticos en la carpeta pública, o cualquiera de los recursos

38
00:02:56,070 --> 00:03:00,140
, platos, promociones, o líderes, o incluso usuarios como veremos más adelante.

39
00:03:02,150 --> 00:03:05,700
El cliente tiene que ser autorizado primero.

40
00:03:05,700 --> 00:03:08,220
Así que ahí mismo, vamos a añadir en la autenticación.

41
00:03:08,220 --> 00:03:15,960
Así que permítanme agregar la función aquí llamada auth justo allí.

42
00:03:15,960 --> 00:03:19,849
Y luego úsalo inmediatamente dentro de nuestra

43
00:03:19,849 --> 00:03:23,147
aplicación Express como middleware allí.

44
00:03:23,147 --> 00:03:27,826
Así que esta función, auth tomará tres parámetros,

45
00:03:27,826 --> 00:03:33,914
el objeto de solicitud, el objeto de recurso, y el siguiente objeto, sí.

46
00:03:37,015 --> 00:03:41,830
Entonces, dentro de esta función, permítanme primero,

47
00:03:41,830 --> 00:03:48,605
solo para saber qué está contenido en el encabezado de solicitud.

48
00:03:50,265 --> 00:03:56,175
Permítanme registrar los encabezados de solicitud justo allí solo para demostrarle,

49
00:03:56,175 --> 00:03:59,970
porque una vez que agregue el encabezado de autorización,

50
00:03:59,970 --> 00:04:03,390
entonces queremos poder verlo allí.

51
00:04:03,390 --> 00:04:07,390
Así que primero haremos un registro de consola,

52
00:04:07,390 --> 00:04:10,142
solo para ver lo que viene desde el lado del cliente.

53
00:04:10,142 --> 00:04:14,379
Luego, permítanme obtener su

54
00:04:14,379 --> 00:04:20,401
encabezado de autorización diciendo

55
00:04:20,401 --> 00:04:26,900
req.headers .author.

56
00:04:26,900 --> 00:04:31,120
Así que aquí es donde obtendremos el encabezado de autorización que es agregado

57
00:04:31,120 --> 00:04:33,320
por nuestro lado del cliente.

58
00:04:33,320 --> 00:04:37,830
Si no está ahí, obviamente, entonces tenemos que actuar en consecuencia.

59
00:04:37,830 --> 00:04:44,493
Entonces, si el AuthHeader es nulo, lo

60
00:04:44,493 --> 00:04:48,992
que significa que no hay encabezado de autenticación en nuestra

61
00:04:48,992 --> 00:04:53,653
solicitud entrante, obviamente, nuestro cliente no incluyó el nombre de usuario y la

62
00:04:53,653 --> 00:04:56,650
contraseña en el encabezado de autenticación.

63
00:04:56,650 --> 00:05:01,230
Así que tenemos que desafiar a nuestro cliente a proporcionar esta información.

64
00:05:01,230 --> 00:05:06,338
Entonces, si el encabezado de autorización es nulo, veremos,

65
00:05:06,338 --> 00:05:12,130
var err nuevo error,

66
00:05:12,130 --> 00:05:19,140
por lo que no permitiremos que nuestra solicitud de cliente vaya más allá de este punto.

67
00:05:19,140 --> 00:05:23,803
Así que diremos, que no está autenticado,

68
00:05:23,803 --> 00:05:28,222
y luego desafiaremos al cliente allí.

69
00:05:28,222 --> 00:05:33,196
Así que diremos Res.setHeader, por lo que

70
00:05:33,196 --> 00:05:38,684
vamos a establecer el encabezado en

71
00:05:38,684 --> 00:05:46,061
el mensaje de respuesta que dice WWW-Authenticate,

72
00:05:46,061 --> 00:05:50,520
y desde la conferencia anterior,

73
00:05:50,520 --> 00:05:55,493
verá por qué estamos poniendo esto

74
00:05:55,493 --> 00:06:00,120
en el encabezado de respuesta.

75
00:06:00,120 --> 00:06:04,480
Y luego diremos err status.401.

76
00:06:04,480 --> 00:06:07,710
401 es acceso no autorizado.

77
00:06:07,710 --> 00:06:12,740
Y luego simplemente generaremos nuestra llamada a continuación con el encabezado.

78
00:06:12,740 --> 00:06:17,960
Entonces eso significa que saltará todo esto e irá al controlador de errores,

79
00:06:17,960 --> 00:06:20,710
donde el controlador de errores construirá el mensaje de respuesta y lo

80
00:06:20,710 --> 00:06:25,880
enviará allí a mi cliente.

81
00:06:25,880 --> 00:06:31,290
Así que, si el cliente no ha incluido el encabezado de autenticación o

82
00:06:31,290 --> 00:06:34,690
el encabezado de autorización, entonces voy a desafiar al cliente a

83
00:06:34,690 --> 00:06:38,980
pedirle que me proporcione el encabezado de autorización allí.

84
00:06:38,980 --> 00:06:45,570
Entonces, si no, entonces sé que existe el encabezado de autorización.

85
00:06:45,570 --> 00:06:51,553
Entonces, más allá de este punto, diremos var auth,

86
00:06:51,553 --> 00:06:55,760
y voy a extraer el encabezado de autorización.

87
00:06:57,460 --> 00:07:02,880
Y luego, dado que el AuthHeader es una cadena,

88
00:07:02,880 --> 00:07:07,650
voy a dividir ese valor y

89
00:07:07,650 --> 00:07:12,690
este encabezado de autorización, voy a dividir el valor.

90
00:07:12,690 --> 00:07:17,350
Entonces, como puede ver, el búfer le permite dividir el valor y

91
00:07:17,350 --> 00:07:23,805
luego también le damos la codificación del búfer que es la codificación Base64 aquí.

92
00:07:23,805 --> 00:07:28,790
Así que vamos a convertir eso en un buffer dividiéndolo en dos partes,

93
00:07:30,250 --> 00:07:32,390
usando el espacio como la parte divisoria.

94
00:07:32,390 --> 00:07:37,614
Entonces, cuando miró el encabezado de autorización, vio por qué el espacio

95
00:07:37,614 --> 00:07:42,656
separa el valor que dice básico, y luego le da el resto de

96
00:07:42,656 --> 00:07:48,172
la cadena codificada Base64 que contiene el nombre de usuario y la contraseña.

97
00:07:48,172 --> 00:07:53,510
Y a partir de eso, queremos extraer el nombre de usuario y la contraseña.

98
00:07:53,510 --> 00:07:59,970
Así que vamos a dividir ese valor, y luego solo vamos a considerar Así que

99
00:07:59,970 --> 00:08:07,510
cuando dividas la cadena usando esto, lo dividirá en una matriz.

100
00:08:07,510 --> 00:08:11,780
Y el primer elemento de la matriz contiene Basic.

101
00:08:11,780 --> 00:08:17,370
El segundo elemento de la matriz es donde existe esta cadena codificada en base64.

102
00:08:17,370 --> 00:08:21,280
Entonces, es por eso que solo estamos mirando el segundo elemento de esta matriz.

103
00:08:21,280 --> 00:08:27,800
Entonces, esta división hará que la cadena se divida en una matriz de dos elementos.

104
00:08:27,800 --> 00:08:32,944
Así que podríamos, estamos recogiendo la cadena codificada base64 de eso.

105
00:08:32,944 --> 00:08:39,820
Y luego estamos en este Buffer, y luego vamos a convertir eso en cadena.

106
00:08:39,820 --> 00:08:45,830
Y de nuevo, divida la cadena una vez más porque la cadena

107
00:08:45,830 --> 00:08:51,200
en sí contendrá el nombre de usuario y la contraseña separados por dos puntos.

108
00:08:51,200 --> 00:08:56,040
Entonces, voy a dividirlo usando los dos puntos como

109
00:08:56,040 --> 00:09:01,350
punto de división para esta cadena aquí.

110
00:09:01,350 --> 00:09:05,727
Así que note que estoy cargando dos divisiones aquí, una en el espacio y

111
00:09:05,727 --> 00:09:11,110
la segunda, usando los dos puntos que separa el nombre de usuario y la contraseña.

112
00:09:11,110 --> 00:09:18,570
Así que al final de esta variable auth debería haber una matriz que contenga dos elementos,

113
00:09:18,570 --> 00:09:24,460
el nombre de usuario y la contraseña que se extrae de la cadena base64.

114
00:09:24,460 --> 00:09:31,744
Así que en este punto, lo que voy a hacer es,

115
00:09:31,744 --> 00:09:35,908
solo para su claridad,

116
00:09:35,908 --> 00:09:40,695
simplemente voy a decir var

117
00:09:40,695 --> 00:09:46,733
username = auth [0] y luego,

118
00:09:46,733 --> 00:09:51,970
var password = auth [1].

119
00:09:51,970 --> 00:09:57,760
Así que ahora he extraído el nombre de usuario y la contraseña de mi encabezado de autorización.

120
00:09:57,760 --> 00:10:02,210
Ahora voy a usar un valor predeterminado para el nombre de usuario y la

121
00:10:02,210 --> 00:10:06,030
contraseña en esta implementación.

122
00:10:06,030 --> 00:10:10,950
Más adelante veremos que podemos permitir a los usuarios crear su propio nombre de usuario y

123
00:10:10,950 --> 00:10:11,530
contraseña.

124
00:10:11,530 --> 00:10:14,304
Pero por el momento, sólo voy a usar,

125
00:10:17,358 --> 00:10:20,925
El nombre de usuario codificado y contraseña como administrador.

126
00:10:23,615 --> 00:10:30,705
Y la contraseña será solo contraseña.

127
00:10:30,705 --> 00:10:32,778
Para este ejercicio básico,

128
00:10:32,778 --> 00:10:37,970
vamos a usar esto como nombre de usuario y contraseña predeterminados.

129
00:10:39,468 --> 00:10:47,520
Si el nombre de usuario que obtengo es admin y la contraseña es la contraseña de cadena.

130
00:10:47,520 --> 00:10:52,490
Entonces estoy bien para permitir que la

131
00:10:52,490 --> 00:10:56,950
solicitud del cliente se pase al siguiente middleware, así que diré a continuación.

132
00:10:56,950 --> 00:11:01,130
Entonces, cuando digo lo siguiente, esto significa que desde la autenticación

133
00:11:01,130 --> 00:11:05,840
su solicitud pasará en el siguiente conjunto de middleware aquí y

134
00:11:05,840 --> 00:11:10,660
luego Express intentará hacer coincidir la solicitud específica para el

135
00:11:11,830 --> 00:11:15,420
middleware específico que servirá a esa solicitud.

136
00:11:15,420 --> 00:11:19,440
Así que aquí es donde vamos a permitir que pase.

137
00:11:19,440 --> 00:11:24,000
Si no, eso significa que el nombre de usuario y la

138
00:11:24,000 --> 00:11:29,260
contraseña no coinciden con la solicitud,

139
00:11:29,260 --> 00:11:33,010
el nombre de usuario y la contraseña predeterminados que estoy configurando.

140
00:11:33,010 --> 00:11:34,930
Así que eso significa que hay un error.

141
00:11:34,930 --> 00:11:39,310
Entonces, en este caso, voy a volver a causar un error aquí,

142
00:11:39,310 --> 00:11:43,280
así que diremos otra cosa, Error.

143
00:11:43,280 --> 00:11:49,540
Así que volveremos a generar un error y luego desafiaremos al cliente a enviar

144
00:11:49,540 --> 00:11:55,430
la información de autorización correcta, el nombre de usuario y la contraseña aquí.

145
00:11:55,430 --> 00:11:56,730
Así que eso es todo.

146
00:11:56,730 --> 00:12:01,100
Este poco de middleware que acabamos de implementar aquí,

147
00:12:01,100 --> 00:12:04,010
middleware de autorización que acabamos de implementar aquí.

148
00:12:04,010 --> 00:12:08,840
Es suficiente para implementar la autenticación básica dentro de la aplicación de salida.

149
00:12:08,840 --> 00:12:10,300
Así que después de haber realizado estos cambios,

150
00:12:10,300 --> 00:12:15,210
vamos a guardar los cambios y luego veremos cómo funciona esto realmente en la práctica.

151
00:12:15,210 --> 00:12:16,770
Vamos a guardar los cambios.

152
00:12:16,770 --> 00:12:20,600
Y luego iremos a poner en marcha nuestro servidor.

153
00:12:20,600 --> 00:12:22,980
Ahora, yendo a la terminal, por supuesto,

154
00:12:22,980 --> 00:12:26,916
asegúrese de que usted es el servidor MongoDB está en funcionamiento.

155
00:12:26,916 --> 00:12:34,390
De lo contrario, su servidor Express no se iniciará.

156
00:12:34,390 --> 00:12:38,350
Así que tengo el indicador de inicio npm, y

157
00:12:38,350 --> 00:12:41,810
luego su servidor Express estará en funcionamiento.

158
00:12:41,810 --> 00:12:46,760
Ahora, abra en la ventana de incógnito en su navegador.

159
00:12:46,760 --> 00:12:51,280
La razón por la que le estoy pidiendo que use una ventana de incógnito es que cuando escriba

160
00:12:51,280 --> 00:12:55,820
el nombre de usuario y la contraseña, será almacenado en caché por su navegador.

161
00:12:55,820 --> 00:12:59,490
Entonces, si usas una ventana de incógnito, si reinicias el navegador...

162
00:12:59,490 --> 00:13:01,710
Luego, la caché se borrará automáticamente,

163
00:13:01,710 --> 00:13:04,300
por lo que esta información no se recordará.

164
00:13:04,300 --> 00:13:07,500
Ahora lo que sucede si escribe el nombre de usuario y la contraseña, se almacenará en caché,

165
00:13:07,500 --> 00:13:11,570
por lo que posteriormente cuando intente acceder al servidor, la información almacenada en caché

166
00:13:11,570 --> 00:13:15,840
se enviará automáticamente en la solicitud que genere.

167
00:13:15,840 --> 00:13:18,710
Por eso es importante

168
00:13:18,710 --> 00:13:23,400
usar una ventana de incógnito solo para mostrarle que la autenticación básica funciona.

169
00:13:23,400 --> 00:13:31,140
Entonces, en la barra de direcciones de su navegador vamos a escribir localhost: 3000, y ver qué sucede.

170
00:13:31,140 --> 00:13:36,920
Así que cuando escribe localhost:3000, inmediatamente ve que su navegador aparece

171
00:13:36,920 --> 00:13:43,290
este diálogo en la parte superior pidiéndole que escriba el nombre de usuario y la contraseña.

172
00:13:43,290 --> 00:13:50,240
Si no lo escribe, déjame escribir algún nombre de usuario aleatorio y luego ver qué sucede.

173
00:13:50,240 --> 00:13:54,000
Entonces, si escribo un nombre de usuario y contraseña aleatorios,

174
00:13:54,000 --> 00:13:57,260
entonces verá que la solicitud es rechazada.

175
00:13:57,260 --> 00:14:00,890
No se me permite acceder al servidor, y

176
00:14:00,890 --> 00:14:06,100
luego si el servidor volverá a decir que el cliente no está autorizado.

177
00:14:06,100 --> 00:14:10,330
Y así volverá y nos desafiará de nuevo para la autenticación correcta.

178
00:14:10,330 --> 00:14:12,820
Así que permítanme escribir la autenticación actual.

179
00:14:12,820 --> 00:14:17,670
Así que déjame escribir admin y la contraseña como contraseña.

180
00:14:17,670 --> 00:14:23,650
Y luego inicie sesión, y verá que ahora la

181
00:14:23,650 --> 00:14:28,530
aplicación Express le permitirá ingresar y acceder al valor predeterminado,

182
00:14:28,530 --> 00:14:34,700
que en este caso es el archivo Index.html de esa carpeta pública estática.

183
00:14:34,700 --> 00:14:39,590
Ahora, lo mismo si está tratando de acceder a localhost: platos

184
00:14:39,590 --> 00:14:43,260
sin la autorización, entonces no funcionará.

185
00:14:43,260 --> 00:14:49,320
Y te lo demostraré usando cartero en un minuto.

186
00:14:50,630 --> 00:14:56,011
Ahora, habiendo visto cómo funciona la autenticación, vamos a

187
00:14:56,011 --> 00:15:00,985
ver lo que sucedió en la consola en nuestro sitio de servidor. Al

188
00:15:06,181 --> 00:15:11,141
ir a la consola en nuestro sitio de servidor, ve que

189
00:15:11,141 --> 00:15:13,769
se ha impreso un montón de información aquí, así que como vio,

190
00:15:13,769 --> 00:15:17,030
estábamos cerrando la sesión de los encabezados de solicitud aquí.

191
00:15:17,030 --> 00:15:21,040
Entonces, esta es la primera solicitud que entró con el encabezado de solicitud.

192
00:15:21,040 --> 00:15:26,860
Y aquí puede ver que no hay encabezado de autorización en la solicitud.

193
00:15:26,860 --> 00:15:34,620
Así que su servidor lo rechazó con un 401 pidiendo a nuestro cliente que se autorice a sí mismo.

194
00:15:34,620 --> 00:15:40,240
La segunda vez también desde que no escribimos la autorización correcta que el

195
00:15:40,240 --> 00:15:41,916
servidor rechazó.

196
00:15:41,916 --> 00:15:48,390
Por supuesto, ahora nota que en el encabezado, justo allí, la autorización está

197
00:15:48,390 --> 00:15:52,820
realmente incluida allí, y ve la forma en que se incluye la autorización.

198
00:15:52,820 --> 00:15:56,650
Dice Basic separado por un espacio, y

199
00:15:56,650 --> 00:16:02,980
separado por la cadena codificada de 64 bits que contiene el nombre de usuario y la contraseña.

200
00:16:02,980 --> 00:16:06,080
Y luego, vemos que el servidor

201
00:16:06,080 --> 00:16:09,540
rechazó esto porque la autorización era incorrecta en ese momento.

202
00:16:09,540 --> 00:16:14,452
Ahora más adelante, escribimos el nombre de usuario y la contraseña correctos.

203
00:16:14,452 --> 00:16:18,938
Así que ahí mismo, en la tercera solicitud que entró, escribimos el nombre de usuario y la

204
00:16:18,938 --> 00:16:19,597
contraseña correctos.

205
00:16:19,597 --> 00:16:27,323
Y así, es por eso que ve que el encabezado de solicitud contiene la autorización,

206
00:16:27,323 --> 00:16:34,180
y esta cadena usa la codificación correcta del nombre de usuario y la contraseña.

207
00:16:34,180 --> 00:16:35,720
¿ Cómo sé eso?

208
00:16:35,720 --> 00:16:38,384
Bueno, he cruzado y sé que,

209
00:16:38,384 --> 00:16:42,337
esa es la versión codificada externa básica de la cadena allí.

210
00:16:42,337 --> 00:16:47,470
También veremos eso a partir de nuestra imagen de cartero o qué.

211
00:16:48,740 --> 00:16:53,740
Ahora, verá que la solicitud fue aceptada y

212
00:16:53,740 --> 00:16:55,740
devolvió el valor correctamente.

213
00:16:57,210 --> 00:17:05,150
Y luego, por supuesto, posteriormente, el cliente solicitó un favicon, el icono.

214
00:17:05,150 --> 00:17:11,590
Y como no tenemos el favicon en nuestro lado del servidor, responde con el 404 y,

215
00:17:11,590 --> 00:17:15,560
por supuesto, su icono favorito no se muestra en la barra de direcciones.

216
00:17:15,560 --> 00:17:18,640
Así que está bien, pero ten en cuenta en particular.

217
00:17:18,640 --> 00:17:21,430
Aquellos solicitados en particular entraron,

218
00:17:21,430 --> 00:17:25,030
donde se incluyó el encabezado de autorización correcto.

219
00:17:25,030 --> 00:17:28,490
Y así, fue exitoso en ese momento.

220
00:17:28,490 --> 00:17:33,680
Vamos a tratar de ver cómo podríamos hacer lo mismo con postmap.

221
00:17:33,680 --> 00:17:38,480
Así que aquí tengo mi ventana de mapa postal abierta.

222
00:17:38,480 --> 00:17:42,250
Y así en mi ventana Postman voy a escribir

223
00:17:44,160 --> 00:17:50,670
un llegar a localhost: a mi servidor, y luego enviar la solicitud y

224
00:17:50,670 --> 00:17:57,260
se dará cuenta de inmediato de que desafía decir 401 no autorizado.

225
00:17:57,260 --> 00:18:01,890
Así que este es el mensaje de respuesta desde el lado del servidor,

226
00:18:01,890 --> 00:18:06,580
así que observe lo que guarda, 401 No autorizado.

227
00:18:06,580 --> 00:18:12,550
Y dice que la respuesta debe incluir un campo de encabezado WWW-Authenticate.

228
00:18:12,550 --> 00:18:18,153
Y esto desafiará al cliente a enviar la información de autorización,

229
00:18:18,153 --> 00:18:20,083
el nombre de usuario y la contraseña.

230
00:18:20,083 --> 00:18:25,833
Así que previsualizando esto, vemos que la frase que no está autenticado y

231
00:18:25,833 --> 00:18:27,940
luego el código 401 aquí.

232
00:18:27,940 --> 00:18:31,341
Ahora mirando los encabezados del mensaje de respuesta.

233
00:18:31,341 --> 00:18:36,781
Cuando se mira el encabezado del mensaje de respuesta, se puede ver en particular

234
00:18:36,781 --> 00:18:41,718
este encabezado incluido allí, que es www.authenticatebasic.

235
00:18:41,718 --> 00:18:46,522
Ahora, ¿cómo hacemos la autenticación o autorización en la publicación?

236
00:18:46,522 --> 00:18:51,090
Así que aquí es donde irían a esto justo debajo de este cuadro aquí,

237
00:18:51,090 --> 00:18:53,952
verá esta autorización aquí.

238
00:18:53,952 --> 00:18:58,050
Y cuando haces clic en la autorización, ahora mismo dice NO AUTH..

239
00:18:58,050 --> 00:19:01,240
Vamos a usar la autenticación básica.

240
00:19:01,240 --> 00:19:04,820
Entonces, cuando digo autenticación básica,

241
00:19:04,820 --> 00:19:08,530
me dará estos dos campos aquí donde puedo escribir el nombre de usuario y la contraseña.

242
00:19:08,530 --> 00:19:11,160
Permítanme escribir el nombre de usuario y la contraseña correctos.

243
00:19:11,160 --> 00:19:19,170
Así que voy a decir nombre de usuario admin, la contraseña es la contraseña P-A-S-W-O-R-D.

244
00:19:19,170 --> 00:19:22,650
Así que puedes ver eso, esa es exactamente la contraseña que tenemos aquí.

245
00:19:22,650 --> 00:19:26,800
Por lo tanto, una vez que escriba el nombre de usuario y la contraseña, dirán Solicitud de actualización.

246
00:19:26,800 --> 00:19:30,980
Entonces, cuando hago clic en Actualizar solicitud, verá que inmediatamente en el encabezado,

247
00:19:32,130 --> 00:19:35,340
verá que

248
00:19:35,340 --> 00:19:40,770
hay este campo aquí que se ha agregado aquí diciendo autorización.

249
00:19:40,770 --> 00:19:45,080
Y luego, verá lo que esta segunda parte, el valor que puede tomar.

250
00:19:45,080 --> 00:19:49,480
Dice básico y un espacio, y luego esta cadena en particular.

251
00:19:49,480 --> 00:19:55,040
Entonces, si comprueba esta cadena en particular aquí, esta será la

252
00:19:55,040 --> 00:20:01,219
cadena exacta que verá en el encabezado del mensaje de solicitud exitoso.

253
00:20:01,219 --> 00:20:03,544
Observe lo que dice esta cadena.

254
00:20:03,544 --> 00:20:09,309
Dice YWR algo, y luego termina con una Q igual a. Al

255
00:20:09,309 --> 00:20:14,285
ir a nuestra terminal, ves que la solicitud exitosa

256
00:20:14,285 --> 00:20:18,276
realmente contenía exactamente esa cadena aquí.

257
00:20:18,276 --> 00:20:24,250
Dice YWR y luego termina con Q igual a allí.

258
00:20:24,250 --> 00:20:28,400
Por lo tanto, al escribir la información en la autorización y luego hacer clic en

259
00:20:28,400 --> 00:20:34,240
la solicitud de actualización, esta información se agrega a los encabezados de autorización.

260
00:20:34,240 --> 00:20:36,410
Así que ahora esta es una solicitud get,

261
00:20:37,410 --> 00:20:42,020
no necesito el tipo de contenido allí porque no contiene ningún cuerpo.

262
00:20:42,020 --> 00:20:46,106
Así que ahora que se ha incluido la autorización,

263
00:20:46,106 --> 00:20:51,263
enviemos la solicitud ahora correctamente y luego verá que

264
00:20:51,263 --> 00:20:57,990
la respuesta que viene desde el sitio del servidor contendrá el archivo de índice como se espera.

265
00:20:57,990 --> 00:21:02,524
Ahora, permítanme eliminar la autorización.

266
00:21:02,524 --> 00:21:07,351
Esta es la razón por la que Postmap me ayuda a verificar estas cosas mucho más

267
00:21:07,351 --> 00:21:11,662
fácilmente, puedo eliminar la autorización y luego enviar la solicitud.

268
00:21:11,662 --> 00:21:14,947
Y aún contendrá esta autorización,

269
00:21:14,947 --> 00:21:18,570
porque escribí esto en el campo de autorización.

270
00:21:18,570 --> 00:21:23,380
Así que déjame despejar la autorización desde allí, y luego enviar la solicitud aquí.

271
00:21:23,380 --> 00:21:26,000
Y luego dice que no estás autenticado.

272
00:21:26,000 --> 00:21:30,230
Del mismo modo, si envío la solicitud a los platos.

273
00:21:30,230 --> 00:21:32,000
Anteriormente, esto funcionaba bien, pero

274
00:21:32,000 --> 00:21:37,750
ahora ves que también se nos impide acceder al extremo /platos.

275
00:21:37,750 --> 00:21:41,400
Y lo mismo con todos los otros puntos finales APR resto también.

276
00:21:41,400 --> 00:21:47,360
No se le permitirá acceder, porque el middleware de autorización viene antes de

277
00:21:47,360 --> 00:21:50,600
obtener acceso a cualquiera de estos extremos

278
00:21:50,600 --> 00:21:56,070
en la lista de middleware para su servidor express.

279
00:21:56,070 --> 00:21:59,945
Así que ahora si ahora incluyo la autorización,

280
00:22:04,774 --> 00:22:10,277
y luego actualizo mi solicitud y luego envío la solicitud al servidor,

281
00:22:10,277 --> 00:22:12,845
entonces el servidor responderá.

282
00:22:12,845 --> 00:22:17,412
Ahora, obviamente, en este momento, mi base de datos está vacía, por

283
00:22:17,412 --> 00:22:20,752
lo que está respondiendo con una matriz vacía allí.

284
00:22:20,752 --> 00:22:24,109
Pero ahora la solicitud se realizó con éxito, y

285
00:22:24,109 --> 00:22:28,004
puedo recuperar la información del calcetín del servidor.

286
00:22:28,004 --> 00:22:32,186
Así que esta es una demostración rápida de la

287
00:22:32,186 --> 00:22:37,724
autorización básica en nuestra aplicación APR de descanso expreso.

288
00:22:37,724 --> 00:22:40,730
Con esto, completamos este ejercicio.

289
00:22:40,730 --> 00:22:42,236
Este es un buen momento

290
00:22:42,236 --> 00:22:46,846
para que usted haga un comentario con el mensaje de autenticación básica.

291
00:22:46,846 --> 00:22:50,116
[ MÚSICA]