﻿1
00:00:00,191 --> 00:00:02,870
‫-: En esta lección, aprenderemos muy

2
00:00:02,870 --> 00:00:07,210
‫rápidamente cómo probar conexiones https seguras, con un Heroku,

3
00:00:07,210 --> 00:00:08,730
‫porque realmente

4
00:00:08,730 --> 00:00:11,041
‫lo necesitamos, en un momento,

5
00:00:11,041 --> 00:00:12,983
‫en nuestra aplicación.

6
00:00:14,540 --> 00:00:18,560
‫Entonces, vayamos aquí a nuestro controlador de autenticación.

7
00:00:18,560 --> 00:00:21,060
‫Y aquí, en la parte

8
00:00:21,060 --> 00:00:24,049
‫superior, en esta función de creación de

9
00:00:24,049 --> 00:00:26,840
‫token enviado, aquí está el lugar donde

10
00:00:26,840 --> 00:00:30,240
‫configuramos la cookie web adyacente para asegurarla, si

11
00:00:30,240 --> 00:00:32,343
‫actualmente estamos en producción.

12
00:00:33,300 --> 00:00:34,661
‫Recuérdalo.

13
00:00:34,661 --> 00:00:37,630
‫Entonces, recuerde que creamos esta función

14
00:00:37,630 --> 00:00:39,270
‫con una respuesta

15
00:00:39,270 --> 00:00:41,255
‫adyacente, también envía una

16
00:00:41,255 --> 00:00:44,670
‫cookie, que también contiene el token web adyacente.

17
00:00:44,670 --> 00:00:47,090
‫Y esa cookie tiene un par de opciones.

18
00:00:47,090 --> 00:00:49,260
‫El primero, cuando caduque.

19
00:00:49,260 --> 00:00:50,093
‫El

20
00:00:50,093 --> 00:00:54,490
‫segundo, que básicamente solo se puede acceder a través de http.

21
00:00:54,490 --> 00:00:56,570
‫Y luego, cuando estamos en

22
00:00:56,570 --> 00:00:59,344
‫producción, dijimos que esta cookie solo se puede

23
00:00:59,344 --> 00:01:01,480
‫enviar a través de una conexión segura.

24
00:01:01,480 --> 00:01:04,770
‫Entonces, básicamente, en una conexión https.

25
00:01:04,770 --> 00:01:05,810
‫Está bien.

26
00:01:05,810 --> 00:01:08,117
‫Ahora, el problema con eso es

27
00:01:08,117 --> 00:01:10,810
‫que, en realidad, el hecho de que estemos

28
00:01:10,810 --> 00:01:14,370
‫en producción no significa que la conexión sea realmente segura.

29
00:01:14,370 --> 00:01:15,340
‫¿Derecha?

30
00:01:15,340 --> 00:01:18,200
‫Porque, por supuesto, no todas las

31
00:01:18,200 --> 00:01:21,470
‫aplicaciones implementadas se configuran automáticamente en https.

32
00:01:21,470 --> 00:01:25,021
‫Y entonces tenemos que cambiar esto si lo tenemos aquí.

33
00:01:25,021 --> 00:01:25,892
‫Está bien.

34
00:01:25,892 --> 00:01:29,700
‫Ahora, en Express, tenemos una propiedad segura que

35
00:01:29,700 --> 00:01:31,860
‫está en la solicitud.

36
00:01:31,860 --> 00:01:33,682
‫Y solo cuando

37
00:01:33,682 --> 00:01:38,630
‫la conexión es segura, esta solicitud de punto seguro es verdadera.

38
00:01:38,630 --> 00:01:39,463
‫¿Okey?

39
00:01:39,463 --> 00:01:41,090
‫Tiene sentido, ¿verdad?

40
00:01:41,090 --> 00:01:43,790
‫Ahora el problema es que, en realidad, en

41
00:01:43,790 --> 00:01:45,370
‫Heroku, esto no funciona.

42
00:01:45,370 --> 00:01:47,107
‫Y eso se debe

43
00:01:47,107 --> 00:01:52,107
‫a que el proxy de Heroku, básicamente, redirige o modifica todas las solicitudes entrantes

44
00:01:52,290 --> 00:01:56,170
‫a nuestra aplicación antes de que lleguen a la aplicación.

45
00:01:56,170 --> 00:01:57,003
‫Está bien.

46
00:01:57,003 --> 00:02:00,682
‫Entonces, para que esto también funcione en Heroku,

47
00:02:00,682 --> 00:02:04,200
‫también debemos probar si el encabezado x forward

48
00:02:04,200 --> 00:02:06,952
‫proto está configurado en https.

49
00:02:06,952 --> 00:02:07,785
‫Está bien.

50
00:02:07,785 --> 00:02:09,204
‫Entonces, eso suena

51
00:02:09,204 --> 00:02:13,170
‫un poco confuso, pero nuevamente, esto es algo que Heroku hace internamente.

52
00:02:13,170 --> 00:02:16,549
‫Entonces, probemos aquí si es necesario. seguro es

53
00:02:16,549 --> 00:02:21,549
‫verdadero, o si req. encabezados.

54
00:02:22,134 --> 00:02:27,134
‫Y el encabezado que estamos buscando es x proto reenviado.

55
00:02:29,820 --> 00:02:33,830
‫Y este encabezado se establece en https si estamos

56
00:02:33,830 --> 00:02:36,210
‫en una conexión segura.

57
00:02:36,210 --> 00:02:37,050
‫¿Está bien?

58
00:02:37,050 --> 00:02:40,190
‫Entonces, esto es algo muy específico de Heroku.

59
00:02:40,190 --> 00:02:43,870
‫Y es por eso que dejé esto aquí para la última sección,

60
00:02:43,870 --> 00:02:46,113
‫después de que ya implementamos la aplicación.

61
00:02:46,950 --> 00:02:50,700
‫Entonces, si cualquiera de los req. secure es verdadero, o

62
00:02:50,700 --> 00:02:55,150
‫si este encabezado aquí se establece en https, entonces queremos que

63
00:02:55,150 --> 00:02:58,660
‫las opciones seguras aquí se establezcan en verdadero.

64
00:02:58,660 --> 00:03:01,213
‫Y, entonces, podemos refactorizar esto.

65
00:03:02,680 --> 00:03:04,500
‫Entonces, básicamente podemos tomar esto,

66
00:03:04,500 --> 00:03:06,180
‫porque esto será cierto.

67
00:03:06,180 --> 00:03:08,186
‫Entonces, digo que si esto es

68
00:03:08,186 --> 00:03:10,860
‫cierto, digamos que es igual de cierto aquí.

69
00:03:10,860 --> 00:03:12,041
‫Entonces, eso no tiene sentido.

70
00:03:12,041 --> 00:03:15,023
‫En cambio, podemos simplemente hacerlo así.

71
00:03:16,590 --> 00:03:18,110
‫¿Está bien?

72
00:03:18,110 --> 00:03:20,820
‫Y, de hecho, podemos llevarlo aún más lejos.

73
00:03:20,820 --> 00:03:23,883
‫Y ponga la opción segura aquí.

74
00:03:25,350 --> 00:03:28,313
‫Entonces, ¿por qué tenerlo afuera si podemos ponerlo aquí?

75
00:03:29,150 --> 00:03:33,823
‫Entonces, seguro es igual a esto, ¿de acuerdo?

76
00:03:35,550 --> 00:03:37,723
‫Y luego ya no necesitamos esto.

77
00:03:38,910 --> 00:03:41,370
‫Y, dado que estamos

78
00:03:41,370 --> 00:03:46,173
‫refactorizando, en realidad ya no necesitamos esta variable aquí.

79
00:03:48,130 --> 00:03:50,946
‫Entonces, pongámoslo aquí, démosle una caja fuerte,

80
00:03:50,946 --> 00:03:53,520
‫y hay algo mal allí.

81
00:03:53,520 --> 00:03:55,950
‫De acuerdo, y entonces, ahora el problema

82
00:03:55,950 --> 00:03:59,190
‫es que no tengo acceso actualmente a la solicitud

83
00:03:59,190 --> 00:04:00,680
‫en esta función.

84
00:04:00,680 --> 00:04:03,103
‫Bien, entonces, necesitamos agregarlo aquí.

85
00:04:04,050 --> 00:04:09,050
‫Solicitud y luego, donde sea que hayamos creado un token enviado, por

86
00:04:09,120 --> 00:04:11,693
‫supuesto, debemos pasar la solicitud allí.

87
00:04:13,020 --> 00:04:14,063
‫Entonces, eso es aquí.

88
00:04:17,000 --> 00:04:19,763
‫Entonces, use el comando D para encontrar el siguiente básicamente.

89
00:04:21,150 --> 00:04:22,353
‫Solicite aquí.

90
00:04:27,740 --> 00:04:31,193
‫Y finalmente aquí también.

91
00:04:33,010 --> 00:04:36,352
‫Bien, eso se ve mucho

92
00:04:36,352 --> 00:04:40,940
‫mejor y también debería funcionar mucho mejor que antes.

93
00:04:40,940 --> 00:04:44,480
‫Sin embargo, en este momento, esto todavía no va a funcionar,

94
00:04:44,480 --> 00:04:47,460
‫porque solo hay una cosa más que debemos

95
00:04:47,460 --> 00:04:51,350
‫hacer, que es básicamente hacer que nuestra aplicación confíe en los proxy.

96
00:04:51,350 --> 00:04:54,180
‫Entonces, nuevamente, request dot secure no

97
00:04:54,180 --> 00:04:57,550
‫funciona en primer lugar porque Heroku actúa como

98
00:04:57,550 --> 00:05:01,500
‫un proxy, que redirige y modifica las solicitudes entrantes.

99
00:05:01,500 --> 00:05:04,819
‫Y, entonces, tenemos que ir a la aplicación

100
00:05:04,819 --> 00:05:08,010
‫punto JS y luego, justo después de esta

101
00:05:08,010 --> 00:05:10,640
‫aquí, ahora confiemos en el proxy.

102
00:05:10,640 --> 00:05:15,033
‫Y lo hacemos diciendo que el punto de la aplicación habilita el proxy de confianza.

103
00:05:20,680 --> 00:05:21,513
‫¿Okey?

104
00:05:21,513 --> 00:05:24,498
‫Entonces, esto es algo que está integrado en

105
00:05:24,498 --> 00:05:26,980
‫Express para este tipo de situaciones.

106
00:05:26,980 --> 00:05:27,813
‫¿Está bien?

107
00:05:27,813 --> 00:05:31,400
‫Y así, solo si tenemos esta configuración aquí

108
00:05:31,400 --> 00:05:35,210
‫configurada correctamente, entonces este encabezado aquí se configurará

109
00:05:35,210 --> 00:05:38,483
‫correctamente y podremos leer su valor.

110
00:05:39,450 --> 00:05:40,410
‫¿Está bien?

111
00:05:40,410 --> 00:05:44,470
‫Entonces, así es como prueba si una conexión es segura o no,

112
00:05:44,470 --> 00:05:47,363
‫cuando tiene su aplicación implementada en Heroku.

