‫-: En esta lección, aprenderemos muy
‫rápidamente cómo probar conexiones https seguras, con un Heroku,
‫porque realmente
‫lo necesitamos, en un momento,
‫en nuestra aplicación.
‫Entonces, vayamos aquí a nuestro controlador de autenticación.
‫Y aquí, en la parte
‫superior, en esta función de creación de
‫token enviado, aquí está el lugar donde
‫configuramos la cookie web adyacente para asegurarla, si
‫actualmente estamos en producción.
‫Recuérdalo.
‫Entonces, recuerde que creamos esta función
‫con una respuesta
‫adyacente, también envía una
‫cookie, que también contiene el token web adyacente.
‫Y esa cookie tiene un par de opciones.
‫El primero, cuando caduque.
‫El
‫segundo, que básicamente solo se puede acceder a través de http.
‫Y luego, cuando estamos en
‫producción, dijimos que esta cookie solo se puede
‫enviar a través de una conexión segura.
‫Entonces, básicamente, en una conexión https.
‫Está bien.
‫Ahora, el problema con eso es
‫que, en realidad, el hecho de que estemos
‫en producción no significa que la conexión sea realmente segura.
‫¿Derecha?
‫Porque, por supuesto, no todas las
‫aplicaciones implementadas se configuran automáticamente en https.
‫Y entonces tenemos que cambiar esto si lo tenemos aquí.
‫Está bien.
‫Ahora, en Express, tenemos una propiedad segura que
‫está en la solicitud.
‫Y solo cuando
‫la conexión es segura, esta solicitud de punto seguro es verdadera.
‫¿Okey?
‫Tiene sentido, ¿verdad?
‫Ahora el problema es que, en realidad, en
‫Heroku, esto no funciona.
‫Y eso se debe
‫a que el proxy de Heroku, básicamente, redirige o modifica todas las solicitudes entrantes
‫a nuestra aplicación antes de que lleguen a la aplicación.
‫Está bien.
‫Entonces, para que esto también funcione en Heroku,
‫también debemos probar si el encabezado x forward
‫proto está configurado en https.
‫Está bien.
‫Entonces, eso suena
‫un poco confuso, pero nuevamente, esto es algo que Heroku hace internamente.
‫Entonces, probemos aquí si es necesario. seguro es
‫verdadero, o si req. encabezados.
‫Y el encabezado que estamos buscando es x proto reenviado.
‫Y este encabezado se establece en https si estamos
‫en una conexión segura.
‫¿Está bien?
‫Entonces, esto es algo muy específico de Heroku.
‫Y es por eso que dejé esto aquí para la última sección,
‫después de que ya implementamos la aplicación.
‫Entonces, si cualquiera de los req. secure es verdadero, o
‫si este encabezado aquí se establece en https, entonces queremos que
‫las opciones seguras aquí se establezcan en verdadero.
‫Y, entonces, podemos refactorizar esto.
‫Entonces, básicamente podemos tomar esto,
‫porque esto será cierto.
‫Entonces, digo que si esto es
‫cierto, digamos que es igual de cierto aquí.
‫Entonces, eso no tiene sentido.
‫En cambio, podemos simplemente hacerlo así.
‫¿Está bien?
‫Y, de hecho, podemos llevarlo aún más lejos.
‫Y ponga la opción segura aquí.
‫Entonces, ¿por qué tenerlo afuera si podemos ponerlo aquí?
‫Entonces, seguro es igual a esto, ¿de acuerdo?
‫Y luego ya no necesitamos esto.
‫Y, dado que estamos
‫refactorizando, en realidad ya no necesitamos esta variable aquí.
‫Entonces, pongámoslo aquí, démosle una caja fuerte,
‫y hay algo mal allí.
‫De acuerdo, y entonces, ahora el problema
‫es que no tengo acceso actualmente a la solicitud
‫en esta función.
‫Bien, entonces, necesitamos agregarlo aquí.
‫Solicitud y luego, donde sea que hayamos creado un token enviado, por
‫supuesto, debemos pasar la solicitud allí.
‫Entonces, eso es aquí.
‫Entonces, use el comando D para encontrar el siguiente básicamente.
‫Solicite aquí.
‫Y finalmente aquí también.
‫Bien, eso se ve mucho
‫mejor y también debería funcionar mucho mejor que antes.
‫Sin embargo, en este momento, esto todavía no va a funcionar,
‫porque solo hay una cosa más que debemos
‫hacer, que es básicamente hacer que nuestra aplicación confíe en los proxy.
‫Entonces, nuevamente, request dot secure no
‫funciona en primer lugar porque Heroku actúa como
‫un proxy, que redirige y modifica las solicitudes entrantes.
‫Y, entonces, tenemos que ir a la aplicación
‫punto JS y luego, justo después de esta
‫aquí, ahora confiemos en el proxy.
‫Y lo hacemos diciendo que el punto de la aplicación habilita el proxy de confianza.
‫¿Okey?
‫Entonces, esto es algo que está integrado en
‫Express para este tipo de situaciones.
‫¿Está bien?
‫Y así, solo si tenemos esta configuración aquí
‫configurada correctamente, entonces este encabezado aquí se configurará
‫correctamente y podremos leer su valor.
‫¿Está bien?
‫Entonces, así es como prueba si una conexión es segura o no,
‫cuando tiene su aplicación implementada en Heroku.