1
00:00:00,330 --> 00:00:06,050
Bienvenido de nuevo a esto, sabes que nos estamos enfocando en la autentificación de usuarios, donde comienzas para abreviar.

2
00:00:06,120 --> 00:00:10,890
En mi experiencia, los autores escriben algo que los estudiantes realmente están emocionados de aprender porque sienten

3
00:00:10,890 --> 00:00:14,710
que hace que sus aplicaciones sean legítimas y las hace sentir reales y utilizables.

4
00:00:14,760 --> 00:00:18,210
Si puedes registrarte, puedes iniciar sesión y puedes desconectarte.

5
00:00:18,690 --> 00:00:21,030
Entonces eso hace que sea divertido y emocionante enseñar.

6
00:00:21,270 --> 00:00:26,580
Pero la verdad es que también es algo muy difícil de enseñar porque la autenticación es bastante complicada.

7
00:00:27,180 --> 00:00:31,130
Hay muchas piezas móviles que tienen que encajar juntas de la manera correcta para que funcione.

8
00:00:31,140 --> 00:00:32,490
Una gran cantidad de grandes conceptos.

9
00:00:32,670 --> 00:00:34,850
Y, sinceramente, es un montón de código para que funcione.

10
00:00:35,130 --> 00:00:40,170
Afortunadamente para nosotros, existen muchas herramientas geniales que nos ayudan a implementar la autenticación de forma

11
00:00:40,440 --> 00:00:41,530
rápida y segura.

12
00:00:41,550 --> 00:00:45,060
Ahora explica lo que quiero decir con seguridad más adelante en este video.

13
00:00:45,060 --> 00:00:49,860
Antes de sumergirme en la explicación de las herramientas y el flujo de trabajo de la autenticación, quiero dedicar algo de

14
00:00:49,860 --> 00:00:53,540
tiempo a darte una idea de mi proceso de pensamiento detrás de la enseñanza del arte.

15
00:00:53,640 --> 00:00:57,990
Es uno de esos temas en los que he pasado mucho tiempo enseñándolo, pero también

16
00:00:57,990 --> 00:00:59,120
enseñándolo de múltiples maneras.

17
00:00:59,520 --> 00:01:02,960
Cuando enseñas autenticación de usuario, tienes que elegir una opción.

18
00:01:03,210 --> 00:01:09,090
Y para mí, esa elección iba a enseñar la autenticación desde cero, sin utilizar ninguna herramienta en absoluto y

19
00:01:09,090 --> 00:01:14,580
asegurándome de que los estudiantes se enfocaran en los pormenores de cada concepto importante y podría tomar cinco

20
00:01:14,580 --> 00:01:15,660
o seis horas.

21
00:01:15,660 --> 00:01:17,790
Puede ser que haya muchas lecciones, muchos videos.

22
00:01:17,910 --> 00:01:23,010
Podríamos terminar perdiendo algunos estudiantes, pero nos aseguraremos de que todos entiendan cómo

23
00:01:23,010 --> 00:01:23,960
funciona la autenticación.

24
00:01:24,120 --> 00:01:30,000
todo se reduce a esta cuestión de si es más importante que los estudiantes comprendan cómo funcionan las cosas. trabajo.

25
00:01:30,120 --> 00:01:35,850
O utilizamos algunas de las herramientas existentes, herramientas que nos ayudan a agregar la autenticación de usuario de forma

26
00:01:35,850 --> 00:01:38,650
más simple y con menos líneas de código y

27
00:01:38,760 --> 00:01:43,650
¿Es esa la prioridad o es una prioridad hacer que los estudiantes hagan las cosas rápido?

28
00:01:43,650 --> 00:01:49,350
Entonces, se trata de comprensión conceptual y profundidad de conocimiento o se trata de hacer cosas.

29
00:01:49,350 --> 00:01:52,230
Obviamente, en un mundo ideal, nos gustaría ambos.

30
00:01:52,230 --> 00:01:56,910
Queremos que todos comprendan los pormenores de todo lo que enseñamos y queremos que los

31
00:01:56,910 --> 00:02:00,830
estudiantes tengan toneladas de conocimiento práctico y puedan hacer las cosas rápidamente.

32
00:02:01,350 --> 00:02:06,930
comprensión profunda de cada concepto y cómo funcionaba todo y encajaba antes incluso de implementar algo.

33
00:02:06,960 --> 00:02:12,060
En el pasado, probé ambos enfoques de la enseñanza, comencé tratando de darles a los

34
00:02:12,060 --> 00:02:12,900
estudiantes una

35
00:02:13,290 --> 00:02:17,400
Y luego también hice lo opuesto, donde solo intentamos hacer que algo funcione primero y

36
00:02:17,400 --> 00:02:19,350
luego volvemos y hablamos sobre cómo funciona.

37
00:02:19,530 --> 00:02:24,240
Y he pasado aún más tiempo pensando en cómo queremos abordarlo en este curso de video.

38
00:02:24,240 --> 00:02:28,260
He grabado esta conferencia muchas veces, he reelaborado y reescrito todo el código.

39
00:02:28,260 --> 00:02:32,190
Es uno que quiero corregir porque es muy importante y muchos

40
00:02:32,190 --> 00:02:33,120
estudiantes lo esperan.

41
00:02:33,480 --> 00:02:38,850
Entonces, lo que he decidido hacer es tener dos unidades en esta primera unidad de autenticación que

42
00:02:38,850 --> 00:02:39,660
está viendo actualmente.

43
00:02:39,660 --> 00:02:43,040
Comenzaré por darle una visión general muy rápida.

44
00:02:43,260 --> 00:02:46,740
No del todo en profundidad, sino solo una descripción general rápida de cómo funciona la autenticación.

45
00:02:46,860 --> 00:02:51,450
Y luego vamos a utilizar estas herramientas de las que hablé, que hacen nuestras vidas más fáciles y hacen que el

46
00:02:51,450 --> 00:02:52,300
código sea más corto.

47
00:02:52,320 --> 00:02:53,730
Vamos a usarlos de inmediato.

48
00:02:53,970 --> 00:02:59,400
Y el foco está en hacer algo que tenga una ocasión y luego una de las unidades opcionales.

49
00:02:59,460 --> 00:03:05,610
Al final de este curso va a haber una profunda inmersión en la autenticación, donde implementaremos nuestra propia autenticación

50
00:03:05,610 --> 00:03:09,900
de usuario desde cero, donde no usaremos ninguna de las herramientas y le

51
00:03:09,900 --> 00:03:15,390
mostraré ahora el objetivo. es tener lo mejor de ambos mundos comenzando solo por hacer algo.

52
00:03:15,750 --> 00:03:20,460
Y no voy a pasar por alto todos los conceptos, pero no voy a pasar una hora más que

53
00:03:20,520 --> 00:03:21,970
hablar sobre cómo funcionan las cosas.

54
00:03:22,170 --> 00:03:27,030
Muy bien, ahora que hemos sacado eso del camino de esta gran discusión ideológica aquí, ahora quiero

55
00:03:27,030 --> 00:03:31,350
presentar las herramientas que vamos a utilizar, así que vamos a usar algo llamado pasaporte.

56
00:03:31,500 --> 00:03:32,320
Sí.

57
00:03:32,610 --> 00:03:37,470
Y no solo lo estamos usando porque es algo que hará que nuestra vida sea más fácil para que nuestro código sea más

58
00:03:37,710 --> 00:03:39,430
corto hace que esta implementación sea más rápida.

59
00:03:39,720 --> 00:03:42,620
Pero también es algo que se usa mucho en el mundo real.

60
00:03:42,750 --> 00:03:47,410
Montones y montones de aplicaciones usan el pasaporte J. S. para implementar su autenticación.

61
00:03:47,700 --> 00:03:49,320
Déjame mostrarte la página de inicio aquí.

62
00:03:49,560 --> 00:03:55,230
Esto es tartamudear a Passport Chaiya y ver el pequeño eslogan dice que la autenticación simple y no

63
00:03:55,230 --> 00:04:01,350
intrusiva para ningún pasaporte estadounidense es un middleware de autenticación para un nodo extremadamente flexible y que el pasaporte

64
00:04:01,350 --> 00:04:05,200
modular se puede colocar discretamente en cualquier aplicación web basada en expresiones.

65
00:04:05,280 --> 00:04:10,950
Un completo conjunto de estrategias respalda la autenticación usando un nombre de usuario y contraseña Facebook

66
00:04:11,070 --> 00:04:12,210
Twitter y más.

67
00:04:12,210 --> 00:04:16,280
Y luego puedes ver aquí en realidad hay más de 300 estrategias diferentes.

68
00:04:16,440 --> 00:04:21,510
Entonces, la estrategia se refiere a diferentes tipos de autenticación, diferentes formas de autenticación de personas, ya sea

69
00:04:21,930 --> 00:04:27,240
haciendo que el usuario escriba un correo electrónico y una contraseña de autenticación tradicional o si es a través

70
00:04:27,240 --> 00:04:32,520
de un servicio como Facebook o Twitter que probablemente haya visto antes en un sitio o aplicación donde le

71
00:04:32,880 --> 00:04:36,300
pide que inicie sesión a través de Google o Twitter o Facebook.

72
00:04:36,390 --> 00:04:41,690
buscar a través de ellos para que haya cosas como Fitbit que puede iniciar sesión a través de Fitbit.

73
00:04:41,690 --> 00:04:45,220
Y hay muchas más cosas que podemos ver en realidad y podemos

74
00:04:45,440 --> 00:04:49,450
Tenemos Spotify Reddit tumblr Google plus.

75
00:04:49,700 --> 00:04:53,630
Pero, con mucho, los más populares serán Facebook, Twitter y Google.

76
00:04:53,620 --> 00:04:58,220
Y luego también lo que se conoce como autenticación local, que es con lo que comenzaremos aquí que es

77
00:04:58,490 --> 00:05:00,620
solo nombre de usuario o correo electrónico y contraseña.

78
00:05:00,620 --> 00:05:01,170
DE ACUERDO.

79
00:05:01,370 --> 00:05:03,900
Entonces, esa es la herramienta básica con la que vamos a usar el pasaporte.

80
00:05:03,940 --> 00:05:07,660
Sí, será una gran ayuda en nuestra implementación de usuario.

81
00:05:08,060 --> 00:05:12,960
Pero también vamos a usar otro paquete llamado Passport local que tengo aquí.

82
00:05:13,190 --> 00:05:17,280
Y este es uno de esos esquemas o estrategias para la autenticación.

83
00:05:17,360 --> 00:05:25,160
Entonces, hay un pasaporte Facebook, un pasaporte, un pasaporte de Twitter, un pasaporte local de Google y más de 300 estrategias diferentes, el pasaporte

84
00:05:25,160 --> 00:05:30,700
local es para el nombre de usuario y la contraseña, que es lo que haremos para comenzar.

85
00:05:30,890 --> 00:05:36,610
Pero lo realmente bueno del pasaporte es que más adelante en este curso podemos agregar Facebook o Twitter y

86
00:05:36,800 --> 00:05:42,290
también podemos mantenerlo localmente y podemos tener tres 5 10 formas diferentes de iniciar sesión en nuestra aplicación.

87
00:05:42,320 --> 00:05:47,420
Por lo general, desea mantenerlo bastante limitado, pero podemos tener todos los que queramos utilizando Passport

88
00:05:47,420 --> 00:05:48,500
y el pasaporte.

89
00:05:48,530 --> 00:05:52,490
Se trata de proporcionar este punto de entrada en todo tipo de destinos.

90
00:05:52,870 --> 00:05:58,240
Está bien y hay un paquete más que vamos a usar que se llama pasaporte mangosta local.

91
00:05:58,520 --> 00:06:04,460
Así que tengo el centro de obtención abierto para eso y el pasaporte local de Mongoose es otro paquete que

92
00:06:04,460 --> 00:06:09,660
solo nos ayudará a implementar la autenticación con el pasaporte y está especialmente diseñado para trabajar con mangostas.

93
00:06:09,830 --> 00:06:11,450
Entonces no tenemos que usarlo

94
00:06:11,540 --> 00:06:16,310
Podríamos salirnos con solo usar Passport local, el pasaporte local. Mongoose nos ayudará a

95
00:06:16,310 --> 00:06:19,430
hacerlo aún más rápido y nos resultará más sencillo.

96
00:06:19,520 --> 00:06:24,620
en la sección opcional de cero desde cero crearemos arte desde cero sin ninguna de estas herramientas.

97
00:06:24,650 --> 00:06:25,760
Y luego, por supuesto,

98
00:06:25,980 --> 00:06:26,470
DE ACUERDO.

99
00:06:26,570 --> 00:06:28,290
Entonces esas son las tres herramientas principales.

100
00:06:28,340 --> 00:06:32,810
Ahora les voy a dar una demostración rápida de lo que vamos a hacer por adelantado, lo cual les

101
00:06:32,810 --> 00:06:34,420
advertiré que no es muy emocionante visualmente.

102
00:06:34,520 --> 00:06:36,020
No lo puse en absoluto.

103
00:06:36,020 --> 00:06:39,840
Pero le agregaremos el campamento de Seraph to yo y lo estaremos estilizando.

104
00:06:40,000 --> 00:06:42,940
Pero por ahora esta es una implementación barebones que quiero mostrarte.

105
00:06:43,220 --> 00:06:45,870
Así que comenzamos en esta página de inicio y tenemos tres botones.

106
00:06:46,120 --> 00:06:53,420
Inicie sesión regístrese y cierre sesión, y hay un secreto de página secreta que solo puede ver si ha iniciado

107
00:06:53,420 --> 00:06:53,930
sesión.

108
00:06:53,960 --> 00:07:00,770
Entonces, si trato de ir allí ahora, no estoy conectado y me lleva a recortar un registro y me muestra el formulario

109
00:07:00,760 --> 00:07:06,510
de inicio de sesión, así que me registraré y les mostraré que podemos ir a la página secreta

110
00:07:06,830 --> 00:07:15,680
Así que el nombre de usuario voy a hacer oxidado cuatro o cinco seis y la contraseña será solo una contraseña y luego me registraré.

111
00:07:18,350 --> 00:07:21,030
Y me lleva a cortar el secreto que ahora puedo visitar.

112
00:07:21,290 --> 00:07:26,090
una foto horriblemente vergonzosa de mi celda de séptimo u octavo grado cuando obtuve mi primera computadora portátil.

113
00:07:26,380 --> 00:07:28,040
Y en la página secreta tengo

114
00:07:28,040 --> 00:07:28,900
Simplemente terrible.

115
00:07:29,090 --> 00:07:33,180
Así que eso es un secreto secreto por una razón obviamente.

116
00:07:33,200 --> 00:07:41,530
Y ahora, si voy a cerrar la sesión, ya no puedo ir a la barra secreta, me redirige para cortar el inicio de sesión y también

117
00:07:41,540 --> 00:07:42,670
puedo iniciar sesión aquí.

118
00:07:42,710 --> 00:07:49,920
Así que usaré Rusti cuatro cinco seis con la contraseña correcta, que es solo contraseña, y me inscribo o

119
00:07:49,920 --> 00:07:58,370
inicio sesión, y me lleva de vuelta a ese secreto y puedo ir a la página de inicio y volver a cortar

120
00:07:58,370 --> 00:08:00,620
el secreto porque me quedo conectado.

121
00:08:00,620 --> 00:08:06,180
Entonces, la forma en que esto funciona el concepto clave que todo gira alrededor es algo llamado sesiones.

122
00:08:07,030 --> 00:08:09,680
Daré un resumen rápido de las sesiones.

123
00:08:09,830 --> 00:08:16,360
Básicamente, se supone que GTP es un protocolo sin estado, lo que significa que cuando envía solicitudes esas

124
00:08:16,370 --> 00:08:21,920
solicitudes son una vez y no contienen información sobre su historial o las solicitudes anteriores que

125
00:08:21,920 --> 00:08:22,660
ha realizado.

126
00:08:22,730 --> 00:08:24,020
No están vinculados entre sí.

127
00:08:24,050 --> 00:08:29,420
Una solicitud no tiene un estado, es solo una transacción única que dificultaría la

128
00:08:29,420 --> 00:08:32,690
implementación del usuario porque quiero poder seguir conectado.

129
00:08:32,930 --> 00:08:38,680
Quiero que el servidor sepa que Rustie 4 o 5 6 todavía está conectado y la forma en que lo hacemos

130
00:08:38,690 --> 00:08:41,280
es mediante el uso de sesiones y qué sesiones harán.

131
00:08:41,360 --> 00:08:44,750
Son solo una forma de hacer que HTP no sea apátrida.

132
00:08:44,750 --> 00:08:49,880
Hay una manera de proporcionar estado, por lo que cuando cada solicitud que hago en esta aplicación cuando estoy conectado

133
00:08:49,880 --> 00:08:55,300
cuando alguien inicia sesión, hay un poco de información sobre ese usuario que se guarda en esa solicitud que se envía

134
00:08:55,550 --> 00:09:00,480
al servidor y es en realidad no es la contraseña de usuario de todo el nombre de usuario.

135
00:09:00,620 --> 00:09:05,320
Pero es un poco de información y está codificada y básicamente está hecha para ser un secreto.

136
00:09:05,450 --> 00:09:10,760
código o no cifrado, y usará esa información para decir si alguien está conectado o no.

137
00:09:10,760 --> 00:09:16,870
Y luego llega a mi servidor y luego el pasaporte lo verá y se traducirá en algo que

138
00:09:16,880 --> 00:09:18,250
entiende básicamente descifrar el

139
00:09:18,470 --> 00:09:21,350
Entonces, esto tendrá más sentido una vez que agreguemos la implementación.

140
00:09:21,350 --> 00:09:26,460
Pero el concepto clave es que las sesiones nos permiten tener estado en nuestras solicitudes HTP.

141
00:09:26,620 --> 00:09:27,730
Entonces puedo enviar datos.

142
00:09:27,770 --> 00:09:33,670
Puedo volver a la página de inicio, todavía sé que estoy conectado como Rustie 4 5 6

143
00:09:33,670 --> 00:09:36,260
y puedo volver a secreto sin ningún problema.

144
00:09:36,590 --> 00:09:41,410
estoy enviando una pequeña porción de información que dice que esta es Rustie cuatro cinco seis que ha iniciado sesión.

145
00:09:41,680 --> 00:09:44,210
Y eso es porque cada vez que hago una solicitud

146
00:09:44,210 --> 00:09:48,620
Y luego, tan pronto como cierro la sesión, esa información se ha ido.

147
00:09:49,120 --> 00:09:55,120
Entonces, cuando voy a recortar el secreto, tengo una lógica que dice que si no hay ningún usuario en la sesión, entonces no

148
00:09:55,280 --> 00:09:57,540
dejes que esa persona vaya a ese secreto.

149
00:09:57,620 --> 00:09:59,370
Redirigirlos para reducir el inicio de sesión.

150
00:09:59,670 --> 00:09:59,940
DE ACUERDO.

151
00:09:59,960 --> 00:10:04,400
Así que repasaremos todo eso con más detalle en el siguiente video cuando

152
00:10:04,390 --> 00:10:09,440
realmente creamos esta sencilla aplicación e implementemos sesiones para obtener ayuda con nuestras sesiones.

153
00:10:09,430 --> 00:10:14,220
Vamos a usar un paquete llamado sesión Express que también se verá en el siguiente video.

154
00:10:14,750 --> 00:10:16,870
OK, eso es todo lo que quiero presentar por ahora.

155
00:10:16,880 --> 00:10:23,890
Así que vamos a utilizar Passport J como el esquema local junto con el módulo o paquete de mongoose local de pasaporte que

156
00:10:23,890 --> 00:10:29,510
nos ayudará a implementar la autenticación de usuario de forma bastante rápida y relativamente fácil y lo pondremos en

157
00:10:30,130 --> 00:10:32,970
marcha en el próximo video de una aplicación simple

158
00:10:33,080 --> 00:10:38,000
Y una vez que tengamos esto funcionando, volveremos al campamento e implementaremos la autenticación del usuario allí.

159
00:10:39,050 --> 00:10:40,100
Está bien, lo veré en el siguiente video
