[Música] hola a todos en este vídeo vamos a aprender a crear un formulario de logro y otro de registro el proyecto estará desarrollado en mvc con la versión 5 y como base de datos estaremos utilizando ese cuál server además en nuestra lógica estaremos utilizando procedimientos almacenados y sesiones entonces les muestro rápidamente el proyecto final como pueden ver tenemos un formulario de lo que es totalmente básico nos pide correo y contraseña y podemos iniciar sesión también tenemos esta opción el cual nos permite registrarnos en el sistema a través del correo ingresar la contraseña y nuevamente confirmar la contraseña y podemos registrarnos entonces rápidamente voy a iniciar acá en el sistema la contraseña y le doy a iniciar sesión y estoy dentro del sistema aquí dentro tenemos la opción de poder salir muy bien estamos de vuelta acá en el formulario de lo que o si yo ingreso nuevamente a la url del sistema donde hemos accedido antes que es como punto index el cual todavía no nos hemos logrado entonces ingreso y como pueden ver no me permite ingresar a menos que no esté logrado todos estos pasos vamos a desarrollarlos desde cero entonces vamos a empezar lo primero que voy a hacer es crear todos los objetos en mi base de datos que estoy utilizando sqlserver la versión 2014 me conecto a mi servidor local simplemente deben conectar y listo entonces acá voy a desplegar una nueva consulta y aquí empiezo a crear mi base de datos de verdad crear data veis el nombre de la base de datos debe poner debe acceso selecciono f5 ya que tengo en el resultado que me dice está todo ok lo siguiente es crear la tabla pero primero voy a hacer uso de mi base de datos como pueden ver acá está todavía estamos en la master y simplemente voy a darle así usar esta base de datos que hemos creado y acá en la parte superior izquierda ya cambio debe acceso muy bien de esa forma ya estamos dentro de la base de datos que hemos creado y lo siguiente es crear mi tabla yo voy a copiar y pegar ya lo que tengo desarrollado acá para ahorrarnos algo de tiempo y como pueden ver acá está la tabla es simple es una tabla llamada usuario tiene una columna de usuario que es la llave primaria tiene una columna correo parchar 100 y la clave que es 500 ustedes pueden agregar acá teléfono nombres completos y otros demás datos pero para este ejemplo es suficiente esto de acá entonces esa es la primera tabla y la única simplemente selecciono y f5 y ya está muy bien ya tenemos la tabla creada lo siguiente va a ser crear los dos procedimientos almacenados que nos va a permitir gestionar este control del usuario el primer procedimiento almacenado que voy a crear va a ser registrar usuario como pueden ver acá estamos recibiendo dos parámetros de entrada el cual es correo y clave bar char ambos y tenemos dos parámetros de salida que es registrado y mensaje estos dos nos van a servir para insertar en nuestra tabla usuario y estos dos para saber obtener el resultado de toda la lógica que hemos implementado dentro del procedimiento almacenado entonces la lógica sería primero estoy validando que no se repita un usuario con el mismo correo con esta sentencia no existe no existe si no existe entonces procedo a insertar en mitad del usuario en las columnas correo el clave esos dos parámetros que estoy recibiendo acá entonces ahora estos parámetros que son de salida le estoy diciendo que tome el valor de uno en el caso de registrado y en el caso del mensaje que tome el valor de usuario registrado entonces si es que el usuario y existe entonces los valores van a ser registrados va a ser cero y mensaje va a ser correo ya existe ha registrado el tema de uno está tomándole como verdadero y registrado cero está tomando con falso acá mi parámetro de salida es del tipo beat entonces solamente maneja 10 mensajes ya un texto marchar nada más entonces ese es el primer procedimiento almacenado selecciono f5 y listo ya está creado ahora el siguiente procedimiento almacenado que vamos a crear es para poder validar si es que el usuario existe en nuestra base de datos o en nuestra tabla le estoy llamando de esta forma esp validar usuario está recibiendo dos parámetros de entrada el cual es correo y clave simplemente y acá estoy validando en la lógica si es que el usuario existe con esas con sus datos que estoy enviando por esto estoy recibiendo correo y clave si existe su usuario entonces yo quiero que seleccione el aire de este usuario que hemos encontrado a través de su correo y clave en el caso no haya sido encontrado pues que retorne valor de cero simplemente selecciona todo este procedimiento almacenado f5 y lo creó listo los siguientes voy a hacer ejecución de estos dos procedimientos almacenados como ejemplo voy a hacer la ejecución del primero el cual es registrar el usuario como saben este procedimiento almacenado está recibiendo dos parámetros de entrada y tiene dos parámetros de salida entonces se ejecuta de esta manera acá están los dos parámetros de entrada y acá están los dos parámetros de salida que son variables que he declarado acá arriba registrado tipo bip y mensaje tipo marchar estas variables le se ponen acá porque son los que van a recibir los valores de estos parámetros de salida entonces acá abajo estoy haciendo un select de estas variables declaradas aquí arriba para saber el valor del que estamos obteniendo a través del procedimiento almacenado que es registrar el usuario entonces voy a darle acá en ejecutar acá la contraseña le estoy poniendo así en forma de cifrado estoy utilizando acá lo tengo estoy utilizando la encriptación del tipo ya 256 donde pueden ver acá simplemente estoy escribiendo test lo escribe en minúscula 3 1 2 y 3 y lo que hice es copiar esto de acá y lo estoy pegando acá simplemente entonces está cifrado e hinchado 5 o 6 ya que sabemos o debemos saber que la contraseña nosotros nunca debemos saberlo por base de datos simplemente seleccionado toda esta consulta y el primer resultado que es para registrado es 1 entonces que si ha sido registrado en nuestra tabla y el mensaje que viene este de aquí lo voy a poner así para alcanzar toda la pantalla está registrado es 1 y mensaje viene a ser usuario registrado ahora nuevamente vuelvo a ejecutar y veamos qué sucede estos son los resultados cero para el valor de registrado y correo ya existe es para el valor de arroba mensaje entonces nuestra validación de nuestro procedimiento registrar usuarios y está funcionando ahora voy a ejecutar el siguiente procedimiento almacenado en el cual ya es muy sencillo es válida al usuario simplemente la estoy pasando el correo del usuario y la contraseña que debe estar encriptada muy bien ejecuta este procedimiento almacenado y me retorna uno porque uno siguió a un selecto a mi tabla de usuario como podemos ver nuestro usuario el cual es correo jose arroyo y mail tiene el aire usuario 1 y esta es la contraseña entonces cuando hacemos la ejecución de este procedimiento almacenado el cual es validar usuarios nos retorna ese aire y de nuestro usuario yo voy a cambiar acá el valor del gmail y si ejecutó ahora no he encontrado un usuario con esas creencias así esas credenciales que estoy enviando le saca el correo y esta contraseña entonces ahora vamos a pasar en la creación del proyecto vamos a abrir en nuestro visual estudio mi versión es del 2022 pero ustedes pueden utilizar cualquier otra versión le vamos a dar acá en crear un nuevo proyecto vamos a especificar acá estos filtros que es lenguaje de programación si ya la plataforma que va a ser windows y el tipo de proyecto va a ser web vamos a dirigirnos acá a la opción de le encontramos aquí abajo que viene a ser aplicación web s&p punto net punto en el framework le damos en siguiente acá ustedes eligen el nombre del proyecto yo simplemente voy a ponerle pruebas blogging de esta forma ustedes eligen la ubicación acá el framework estoy utilizando 4.6 ustedes pueden utilizar del 4.5 en adelante lo deben crear ya cada vez seleccionamos mvc la configuración https lo dejamos si ustedes desean lo pueden desactivar yo lo dejo activo y le damos en crear vimos esperar ahí que nos cargue toda la configuración del proyecto muy bien y estaba cargado acá tenemos todas las carpetas básicas que vienen en la configuración de mvc recuerden que nuestro canal ya tenemos un curso donde explicamos desde cero cómo es que trabaja mvc en cuanto a sus configuraciones y carpetas es un curso totalmente básico y lo va a encontrar en nuestra descripción del vídeo un enlace donde pueden ir directamente a ese curso muy bien entonces terminando con eso vamos a crear un nuevo controlador aquí porque acá tenemos un controlador que se llama home controller el cual ya tiene estos métodos que son indexaba o contact el cual cada uno de ellos representa una vista acá vamos a dirigirnos en la carpeta de view homes que acá está abajo con tag index no cada uno de estos métodos representa un formulario o una vista que tenemos aquí así que nosotros vamos a crear un nuevo controlador con sus propias vistas para nuestro tema de logue o entonces vamos a seleccionar la carpeta controller clic derecho le vamos a dar en agregar un nuevo controlador y acá vamos a elegir el controlador mvc en blanco le damos en agregar acá vamos a cambiar el nombre que va a hacer lo dejamos la palabra controller y le damos en agregar muy bien esperemos que nos cree en nuestro controlador ahí le damos su tiempo y está muy bien no se crea como método ya inicial que sea el index así que nosotros vamos a cambiar el index por uno que diga login va a ser una representación de nuestro formulario de lo que oí acá también y citamos para el formulario de registro el cual le va a poner simplemente lo dejan así registrar y listo muy bien para cada uno de estos vamos a tener un formulario y acá vamos a implementar la lógica de la conexión hacia nuestra base de datos utilizando los procedimientos almacenados pero antes de ello lo que voy a hacer es crear mi primer modelo es en la carpeta de model clic derecho agregar y le damos en nueva clase y acá de clase está bien y acá voy a cambiarle por el nombre de la clase que va a ser usuario de corden que nuestros modelos simplemente es una clase que representa nuestra tabla y acá lo pueden ver dónde están vamos a crear propiedades de nuestra clase que va a representar la columna de la columna correo y clave y listo yo tengo por aquí para ahorrarnos algo de tiempo simplemente voy a copiar y voy a pegar acá las propiedades que son ahí están hay de usuario correo clave que son los mismos nombres de nuestras columnas además acá yo necesito un nuevo una nueva propiedad que va a ser el de confirmar clave ya saben que nosotros al momento bueno cuando estemos en el formulario de registrar vamos a utilizar esta propiedad donde va a ingresar el usuario nuevamente su clave para poder confirmar si es que estas dos coinciden muy bien lo guardamos cerramos ya la clase y acá vamos a hacer el llamado hacia esa carpeta que contiene nuestras clases voy a poner acá la referencia a using pruebas login que es el nombre del proyecto y vamos a acceder a la carpeta de model donde está nuestra clase usuario estas referencias para poder utilizar ese modelo acá dentro de nuestro controlador lo que voy a hacer acá es definir la cadena de conexión hacia nuestra base de datos y acá yo también lo tengo simplemente lo voy a copiar y pegar y les les explico esto para ahorrarnos algo de tiempo y muy bien a instalar nuestra cadena de conexión se conforma de la siguiente manera el primero es el data short que es donde está nuestro servidor si yo voy a hacer cual es server y me conecto de esta forma acá dice el nombre del servidor y yo simple estoy copiando esto que dice entre paréntesis local simplemente lo copia y lo pego acá nuestra base de datos voy a cambiarle acá la base de datos que nosotros utilizamos es de acceso lo copió y lo pego acá listo esta opción de seguridad integrada que está verdadero es porque yo estoy utilizando voy a conectar otra vez estoy utilizando la autenticación de windows si ustedes utilizan con credenciales puedes ponerla sql server acá sus credenciales y listo no entonces la forma de las autenticación con credencial pues acá sería user haití igual y la contraseña es p wv y de y acá ponen su contraseña pero yo no utilizo esto así que simplemente lo dejó así como bien lo que vamos a hacer ahora es crear los métodos que nos van a permitir utilizar nuestras nuestros procedimientos almacenados que hemos declarado en nuestra base de datos lo que voy a hacer es primero crear un método para poder registrarnos voy a copiar este acá y simplemente lo voy a pegar acá este método para diferenciar el que tenemos arriba simplemente le voy a poner la propiedad que sea http post estos métodos de acá que están declarados arriba por default son del tipo get como pueden ver ahí así que de esa forma podemos diferenciar unos de otros acá en el método de registrar vamos a recibir un objeto que va a ser usuario porque ese es el objeto que vamos a registrar en nuestra tabla le voy a poner un nombre que hacer o usuario de esta forma y listo entonces acá dentro del método voy a aplicar ya mi lógica voy a declarar dos variables la primera va serviliano que va a ser registrado y la siguiente que va a ser un string que va a ser mensaje de esta forma y listo muy bien entonces acá termina justo tengo el formulario de bloqueo y acá está de registro y muy bien entonces como este método va a servir para este formulario del cual vamos a registrar como pueden ver acá nos pide el correo nos pide la contraseña y confirmar contraseña entonces lo primero que vamos a hacer en este método que es registrar es validar que esta contraseña que está ingresando acá sea igual y idéntica al al campo de confirmar contraseña y en el caso que no sea idéntica pues que le muestre un mensaje que es que hay un error por ejemplo aunque lo voy a poner no sé doblete y 456 le damos registrarnos y nos muestra un mensaje las contraseñas no coinciden entonces vamos a desarrollar esa lógica empleando lo siguiente que es una condicional simple así que le voy a poner un gif y voy a utilizar los campos de bueno las propiedades de mi objeto usuario que viene a ser usuario punto clave en el caso de que sea igual al tema de confirmar usual confirmar clave está en el caso de que sea igual recuerden que nosotros estamos trabajando con dónde está mi tabla que es electronista nosotros estamos trabajando con las contraseñas encriptadas así que lo que vamos a hacer una vez que confirmemos que las dos claves son idénticas simplemente vamos a proceder a encriptar nuestra clave para ello nosotros vamos a utilizar un método que nos permite esa funcionalidad de poder encriptar nuestra clave así que yo simplemente voy a copiar y pegar acá es el método el cual es convertirse a 256 el corner recibe un texto y va a operar una lógica y nos va a devolver a nuestra clave encriptada no se preocupen que el proyecto yo les voy a dejar para que puedan descargarse lo en el enlace acá en la descripción del vídeo van a poder descargar el proyecto entonces este método me pide añadir unas referencias paso el cursor sobre esta palabra que me tilda error clic acá en el foco y vamos a presionar usar esta referencia listo de igual forma el siguiente pasamos el cursor clic en el foco y usar esa referencia muy bien y listo vamos a volver a nuestro método de registrar y acá como dije voy a copiar esto acá porque voy a actualizar el valor que tenga clave porque ya no va a ser no sé digamos que el usuario ingreso 3 1 2 y 3 de esta forma pero no debería estar registrándose esto en la base en la nuestra tabla así que lo que vamos a hacer es convertir que está convertirse a 256 el texto que está ingresando no usuario volvemos a repetir acá punto clave muy bien simplemente estamos actualizando la propiedad clave con nuestra contraseña ya encriptada lo siguiente es poner ya a seguir la lógica de la condicional y voy a borrar todo este espacio y listo acá voy a poner un else que va a suceder cuando las contraseñas no coincidan acá simplemente voy a crear un virus data el cual el nombre va a ser mensaje y este va a tener el valor de las contraseñas no coinciden muy bien recordemos que los judas nos permiten enviar datos del controlador hacia nuestra vista así que por eso estamos trabajando de esa forma acá lo siguiente es muy bien entonces así las contraseñas no consiguen pues que simplemente me retorne nuevamente a mi vista y listo muy bien eso sería la primera lógica y la siguiente que vamos a hacer ahora ya es conectarnos hacia nuestra base de datos utilizando este procedimiento almacenado que hemos creado que es registrar usuario entonces voy a utilizar el using ahora cierro paréntesis también y de igual forma las llaves y acá adentro voy a poner sql no me parece me olvidé de añadir la referencia vamos acá en la parte superior y acá vamos a utilizar esta referencia al using system punto data punto sql client de esta forma copiamos y voy a borrar el sql clean porque no también necesitamos la referencia del data muy bien entonces ahora sí si volvemos a nuestro método aquí ahora nos va a permitir utilizar esas clases sql que es conexión debe llamarse n y va a ser una nueva conexión sql conexión y entre paréntesis voy a poner esta cadena de conexión que hemos creado arriba el cual es nombre de cadena muy bien entonces estando acá dentro vamos a hacer el llamado a nuestros comandos para eso sql command debe poner el nombre de cmd es igual año es el cole coma y este comando recibe dos parámetros el primero es el nombre del procedimiento que vamos a ejecutar que es registrar el usuario lo copia y lo pegó acá y entonces el siguiente parámetro es nuestra cadena de conexión que hemos creado aquí arriba entonces ahora voy a decirle a mi comando que va a recibir parámetros el primero le voy a agregar así adweek value y acá voy a especificar el primer nombre de mi parámetro el cual sheen y vemos acá nuestro procedimiento es correo y el siguiente es clave entonces primero hago correo copio uno más y acá debe poner clave que es el siguiente parámetro en el correo le voy a poner simplemente en nuestra propiedad del usuario o usuario punto correo y aquí abajo o usuario punto clave muy bien al final terminó con el punto y coma y ahora sí vamos a hacer el llamado a estos dos parámetros de salida que es registrado y mensaje igual forma cmd punto para meter ese punto agregamos bueno solamente es acá el punto de esta forma y acá vamos a poner el nombre de nuestro parámetro que es registrado vamos a definir el tipo que es sql de dividir punto bit y acá le vamos a decir que tiene la dirección de un parámetro tipo output que es de salida voy a copiar todo esto y voy a cambiar acá porque ahora es mensaje quiero validar vuelvo si es mensaje entonces ya no va a ser un este bueno acá me esté equivocando es un bic entero es un simplemente un punto beat listo y acá es un tipo marchar vamos a especificar el tamaño que deseamos muy bien entonces aquí abajo y acá me faltó ponerle a mi comando que va a ser un tipo de coma type de esta forma que sea un tipo de estor proceder con mantas punto store president listo lo siguiente es abrir nuestra conexión y la siguiente es ya ejecutar nuestro comando con s kirchner y listo y a continuación es proceder a leer nuestros parámetros de salida que es registro registrado es igualdad convert punto tubular y vamos a hacer acá el llamado hacia nuestro parámetro al primer parámetro de salida que s m de punto parameters acá entre corchetes vamos a poner el nombre registrado y acá simplemente un punto valor finalizamos con punto y coma copiamos todo esto y ahora acá le cambiamos por mensaje esto ya no va a ser un gol ya no voy a borrar toda esta parte borramos también esto de acá y listo en vez de registrado va a ser mensajes simplemente voy a copiar y pegar y acá hacer punto to bueno está ahí evalúe tu string distó muy bien entonces lo que vamos a hacer es después de haber ejecutado nuestro procedimiento almacenado voy a copiar este vídeo datta voy a copiar todo esto listo y entonces en vez de que diga ese mensaje pueda copiar la variable mensaje le voy a asignar en nuestra vista en este vídeo data y la siguiente es válida desde el tema del registrados y realmente será registrar nuestra base de datos recuerden que es registrada es del tipo julia no se atuvo falls entonces que esté según si registrado es igual a verdadero entonces que nos dé el torneo hacia otra vista de direc to action entonces cuál va a ser la vista que nos va a redireccionar va a ser el del formulario de lo que o que está en el controlador acceso que viene es el este de acá login que está en nuestro controlador de acceso y entonces caso contrario le voy a poner acá en elx que simplemente me retorne a la vista actual con el mensaje de error que seguramente tenemos y listo muy bien así que esto ya lo quitamos y eso sería todo el método de registrar ahora lo que vamos a hacer es el método de login simplemente copia está esto de aquí y lo voy a perder aquí abajo acá vamos a cambiar el tipo porque va a ser una http post http post muy bien entonces acá vamos a recibir de igual forma voy a copiar este parámetro que tenemos acá lo copio y simplemente lo pego acá o bien y acá vamos a aplicar la primera lógica que es este encriptar la contraseña que estamos recibiendo por parte de la interfaz punto clave o usuario clave es igual a convertir ya 256 de igual forma hacemos el llamado usuario clave y acá punto y coma muy bien acá simplemente estoy actualizando otra vez la propiedad de clave sí pero le estoy actualizando ya ha convertido en la encriptación de ella 256 y asia encriptado es como le vamos a enviar a nuestro procedimiento almacenado entonces voy a copiar todo este yushin de acá porque ya lo tenemos estoy desarrollado y lo voy a pegar acá acá simplemente voy a cambiar el nombre del procedimiento almacenado que estamos haciendo el llamado que ssp validar usuario y lo voy a pegar acá muy bien los parámetros que recibe están bien es correr clave lo dejamos pero esto ya no utiliza parámetros de salida solamente vamos a trabajar con esos dos vamos a abrir la conexión y todo esto de que ya no lo necesitamos muy bien entonces recordemos que nuestro procedimiento almacenado validar usuario acá lo tengo voy a ejecutar lo voy a borrar esto y listo lo ejecutó y nos retorna solamente una fila y una columna y esta el aire del usuario entonces vamos a hacer lectura de este este valor de aquí de la siguiente manera que ya no va a saber exigir un acuerdo y si no va a ser el secure lo tenemos acá este quiere escalar de esta forma entonces el chequeo escalar solamente nos va a leer la primera fila y la primera columna así que cumple con lo que nosotros necesitamos esto de acá lo vamos a almacenar nuevamente en usuario punto hay de usuario simplemente vamos a actualizar la propiedad de usuario de este usuario que estamos recibiendo simplemente lo actualizamos pero acá necesitamos convertirlo con virtud y n 3 a 32 un entero de 32 y lo voy a encapsular de esta forma y acá lo voy a poner por si acaso tú string listo muy bien entonces vamos a salir ya del using y acá abajo vamos a emplear la siguiente lógica el cual va a decir if si yo usuario punto hay de usuario es diferente a 0 entonces quiere decir que realmente hemos encontrado un usuario con las credenciales enviadas lo que va a hacer es simplemente acá vamos a trabajar el tema de sesiones las sesiones se utilizan para almacenar datos es muy potente y utilizado ya que podemos guardar todo tipo de datos y además podemos acceder a ella en cualquier lugar del proyecto sólo que bueno aquí el escrito mal sesión y entre el corchete vamos a poner el nombre de nuestra sesión en el cual lo hacer simplemente usuario y acá vamos a almacenar el valor o bueno todos los valores de usuario todo todo el objeto usuario mejor dicho y a continuación vamos a hacer un redireccionamiento conred eric es tu opción y acá el primero vamos a especificar el nombre del método y luego es el controlador vamos a reaccionar a index pero del controlador de home listo muy bien en el caso que el aire usuario siga siendo 0 o sea que no hemos encontrado un usuario con las credenciales lo que debe hacer es voy a y voy a copiar lo que tengo a caer view data y lo pruebo acá y acá en vez de que diga mensaje va a decir usuario no he encontrado muy bien y acá simplemente voy a cortar esto de acá el rector vio y lo voy a pegar dentro de él muy bien entonces con eso ya estamos finalizando todos los métodos que son necesarios ahora lo que vamos a hacer es proceder a crear ya el diseño de nuestros formularios para ello voy a dirigirme primero acá en el de login y le voy a dar clic derecho agregar una vista vista mbc 5 agregamos y acá bueno lo dejamos tal y como estaba pero acá vamos a desactivar esto de usar página de diseño y le damos en agregar si pueden ver acá en la carpeta de virus ya tenemos en nuestra carpeta de acceso la vista de login vamos a hacer ahora lo siguiente con la vista de registrar clic derecho agregar una vista vista mvc agregamos lo dejamos tal y como está y le damos en agregar y si pueden ver acá en la carpeta de acceso ya tenemos la vista login y de registrar entonces ahora vamos a empezar a diseñar nuestros formularios así que para ello voy a utilizar un sitio web el cual se llama best y para acá yo tenía seleccionado y vamos a darle aquí en la primera opción que nos aparece o el primer resultado seleccionamos y aquí está por lo que puedo ver es un sitio web donde usuarios nos comparten sus diseños libremente así que vamos a utilizar uno de ellos voy a entrar a la sección de snippets y acá seleccionamos tag y list vamos a esperar a que nos cargue aquí vamos a buscar el de login a casa el primero ustedes pueden elegir un diseño para sus tablas para modales para cartas y todo yo voy a buscar diseños de unos formularios de login así que selecciona el login simplemente y voy a seleccionar este aquí el que me parece no sé más amigable y acá el usuario es esté aquí el cual nos comparte el diseño comparte su html y el csd aplicado entonces simplemente vamos a copiar todo lo que viene a ser su html en específico todo el body que ha desarrollado así que voy a seleccionar del body al finalizar simplemente voy a copiar eso de ahí y primero voy a trabajar con mi formulario de login de igual forma selecciono todo el body y acá voy a eliminar y voy a pegar lo que he copiado entonces lo siguiente bienes era copiar todas las referencias que el usuario ha utilizado por ejemplo que está en el heat voy a copiar todo esto de aquí y lo voy a llevar a mi proyecto y voy a reemplazar por todo lo que tengo acá en el heat borro y pego listo entonces vamos a ver qué más nos pide también nos pide acá añadir estas referencias que son dos estilos de bustra pueden copiar solamente el de la hoja de estilos que es el bus track 4.1 es la versión y lo voy a llevar a mi proyecto y lo voy a pegar aquí abajo antes de finalizar el heat y lo pego a calixto muy bien entonces vamos a ver qué es lo siguiente nos pide también añadir estas hojas de js simplemente copian las referencias y lo llevamos acá al proyecto al final de dif antes del body y listo muy bien y esto entonces lo último que nos falta simplemente añadir viene ser sus estilos nos vamos a la sección de css y voy a copiar todos sus estilos para ello primero voy a crear una hoja de estilos dentro del proyecto hoy ubicar marca en la carpeta de content clic derecho agregar nueva carpeta y lo llama al cs de esta forma muy bien y acá voy a crear una hoja de estilo seleccionamos clic derecho agregamos una hoja de estilos muy bien y acá no se le voy a poner simplemente login y le doy en enter y muy bien ya está nuestra hoja de estilos entonces acá voy a copiar todo esto de aquí selecciono muy bien nos aseguramos de haber copiado todo y vamos a reemplazar todo esto en nuestra hoja estilos que hemos creado actualmente que es login y lo voy a pegar acá y listo guardamos los cambios controles y voy a proceder a cerrar ya no me sirve lo que voy a hacer es añadir la referencia de de esa hoja de estilos que he agregado ahorita seleccionamos bueno se ha abierto pero yo no quiero que se abra quiero llevarlo simplemente quiero arrastrarlo ósea de esta forma seleccionamos y lo arrastramos muy bien entonces de esa forma ya hemos ha dicho de referencia a esa hoja de estilos que hemos agregado recientemente con los estilos del formulario entonces ahora sí voy a proceder a ejecutar el proyecto para ver cómo está quedando ejecutamos y vamos a ver parece que apareció y está aquí muy bien entonces como podemos ver ahí está el formulario efe 12 no tenemos ningún problema así que está bien entonces acá vamos a hacer ciertos cambios primero voy a cambiar este logo que aparece aquí por un logo de mi canal ya tengo por aquí la url ya copiada y lo simplemente voy a pegar entonces la imagen nos dice que está aquí la cual está utilizando así que yo voy a borrar todo eso de ahí y voy a reemplazar por el logo de mi canal muy bien ahí estado ustedes pueden reemplazar ahí por el logo que ustedes correspondan y simplemente ahí guardan los cambios y vamos a actualizar así el proyecto que es este de aquí control de f5 y muy bien ahí está actualizado ahora lo siguiente que vamos a hacer es éste corregir algunas algunas cosas de aquí por ejemplo que nos diga usuario nada men y password eso de ahí vamos a hacerle algunos diseños aquí en el input acá está la buena el icono que va a mostrar pues el icono acá vamos a cambiar le vamos a poner que es un correo para ello tenemos que saber todas estas clases de bus trap acá simplemente le voy a cambiar por en belo que guardamos y ahora sí voy a actualizar control de f5 muy bien ahora ven que ese usuario ha cambiado por una carta de correo no vamos a cambiar en este de aquí que es viene será el place holder y acá es este de acá que es el de usuario user name que dice y lo voy a cambiar simplemente por correo muy bien entonces acá está todo bien y acá también por el tema de la llave así que lo vamos a dejar acá y en el play holder de password que dice acá simplemente voy a poner contraseña listo guardamos actualizamos el proyecto control de f5 muy bien esa correa y contraseña este remember me de aquí lo voy a quitar ya que no lo vamos a utilizar que viene ser toda esta sección y luego puedo comentarlo simplemente él eliminó prefiero eliminarlo de esta forma y listo entonces vamos a continuar con el diseño acá en vez de login debería decir a ver tengo por acá un ejemplo que debería decir iniciar sesión simplemente iniciar sesión guardamos los cambios y vamos a ver cómo está quedando está iniciarse sea muy bien toda esta sección de acá pues la vamos a omitir nosotros vamos a ingresar otro porque acá debería sea no tienes una cuenta aún y crear una cuenta o registrarse así que vamos a cambiar esto de ahí que está justo acá voy a cambiar por no tienes una cuenta no tienes una cuenta y en vez que diga esto de acá lo voy a cambiar por registrarse muy bien y todo esto de acá lo voy a quitar no vamos a utilizar el de se olvide o la contraseña y acá en el h red que vemos acá nosotros como el hr es lo que hace es redirigir a otra página acá le vamos a decir que nos redirección en nuestra página de registrarse para ello vamos a poner la url ocurre el de haber url este punto action y acá nos pide dos parámetros el primero es el nombre del método que es registrarse y el siguiente es el controlador en donde está este método que es acceso muy bien ahora sí voy a ir al formulario control f 5 lista no tienes una cuenta y dice registrarse si presionamos acá nos redirige a este dakar quiero ver creo que he copiado mal dónde está acceso controller la página se llama a bueno se llama registrar simplemente voy a copiar y voy a reemplazar a registrarse sin registrar entonces vamos a ver cómo funciona ahora control de f5 presionamos aquí a registrarse y muy bien ahora si ya no tenemos error ya nos redirige a esta página que registrar muy bien entonces ahora sí lo que vamos a hacer acá es este que al momento de que presione este botón de haber regreso sí entonces cuando presiona el botón de iniciar sesión lo que quiero es que ejecute este método que hemos creado el cual es de haber de login estamos pasando un objeto usuario y va a empezar a hacer todas estas operaciones entonces le voy a decir que al momento de que presione ese botón que ejecute este método que se llama login voy a copiar el nombre del método muy bien voy a dirigirme a mi formulario de login y entonces acá voy a empezar a decirle cuál va a ser el método que vas a ejecutar como este botón hasta aquí dentro del formulario y el tipo de botón lo voy a cambiar para que sea un soft mid para que la acción del botón sea la acción de ese formulario para ello voy a hacer así action y acá lo voy a especificar el método que debe ejecutar pongo de esta forma arroba url punto action y acá le voy a pasar primero el nombre del método y a continuación el nombre del controlador dónde está acceso muy bien ya que debe decir que es un método del tipo post muy bien entonces ahora lo que vamos a hacer es ponerle un nombre a cada uno de estos tiempos tanto de dónde va a colocar el usuario de su correo y dónde va a poner la contraseña acá ya tiene una propiedad llamada nam así que acá vamos a poner la propiedad de la clase que vamos a utilizar como saben estamos enviando un objeto usuario si examinamos este usuario tienen las siguientes propiedades que es correo y clave así que vamos a hacer uso de estas dos propiedades recuerden el nombre de discuten el nombre es correo y acá es clave así que voy a cambiar acá en vez de en ame vacío va a decir correo y acá en la caja de texto voy a decir clave muy bien de esa forma ya estamos relacionando que lo que va a enviar este botón va a ser un objeto usuario que tiene esas propiedades de correo y la propiedad de clave entonces simplemente acá guardamos los cambios voy a poner un punto de depuración acá en el método de login muy bien o un punto de interrupción para saber qué es lo que está sucediendo aquí entonces voy a actualizar acá mi sitio web muy bien acá voy a poner el correo el correo el cual yo he utilizado es o sea gmail así que voy a poner que se de ahí y en cuanto a la contraseña es 1 2 y 3 acá voy a darle iniciar sesión y como pueden ver que estamos ejecutando este método de login puede inspeccionar este elemento de objeto que es un usuario y como ven clave le hemos enviado 3 1 2 3 y el correo es josé arroyo gmail.com son los dos valores que no que le hemos enviado por el formulario así que acá simplemente vamos a convertir esa clave de tres unos 3 encriptada y muy bien ahí está ya el inscripto prácticamente ha actualizado la misma propiedad con la encriptación y acá estamos haciendo la conexión hacia la base de datos a ejecutando el procedimiento almacenado le enviamos como parámetro en correo josé arroyo email y en clave y ahí está la contraseña increpada le decimos que es un procedimiento almacenado ejecute y vamos a ver si obtenemos un resultado nos devuelve un aire usuario 1 entonces quiere decir que si lo encontró entonces si hay de usuario es diferente de 0 como es 1 entonces entra a este if y acá dice en sesión para crear una sesión llamada usuario el cual va a almacenar todo el grupo de usuario y a continuación pues nos dice que va a reaccionar a nuestra página que es index home muy bien y ahí termina vamos a darle en continuar y como ven ya nos ha enviado acá a otra página distinta que ya es donde estamos el sistema bueno acá algo rápido vamos a hacer vamos a agregar acá el menú de cerrar sesión para poder volver acá al formulario de inicio eso lo vamos a hacer ahora rápidamente voy a cerrar el proyecto y nos vamos a ubicar acá en la carpeta de charette acá tenemos un html llamada layout y aquí es donde vamos a trabajar ese tema de cerrar sesión para ello simplemente voy a copiar esto de acá y lo voy a pegar aquí abajo así que acá le voy a poner simplemente salir que es el nombre de la etiqueta acá a continuación nos pide el nombre del método lobo de mar cerrar sesión este nombre método todavía no existe lo voy a crear muy bien entonces el siguiente es com muy bien eso sería todo voy a copiar este de acá este método que todavía no he creado voy a copiar y me voy a dirigir acá al controlador de home y acá simplemente voy a copiar nuevamente todo esto a ver listo muy bien ya lo copié y voy a reemplazar a este nuevo por el método que he creado recientemente que resalta cerrar sesión entonces vamos a cambiar la lógica este método voy a borrar todo esto de acá y acá simplemente voy a poner bueno voy a copiar lo que tengo acá en acceso controller y miren voy a copiar estos dos de aquí y los voy a llevar acá entonces primero a sesión le voy a decir que sea nulo porque ya no que como yo estoy cerrando sesión así que sesión quiero que lo vuelvas nulo y acá cuando ya termine esa realización pues creo que lo re dirija a una página entonces va a ser lo link que se encuentra en el controlador de acceso como bien entonces vamos a probar esta funcionalidad que hemos agregado rápidamente a ver vamos a esperar a que nos muestre en nuestro formulario le voy a dar en cada en salir como ya habíamos iniciado sesión maría nos apareció en nuestro formulario del sistema ya una vez ingresado al sistema no voy a iniciar sesión nuevamente voy a poner la contraseña test a ver 3 1 2 y 3 iniciamos sesión bueno acá se quedó con mi punto de depuración voy a darle bueno voy a saltar todo esto simplemente acá está validando que realmente existe el usuario y acá está creando la sesión y acá simplemente adicción a index entonces vamos a darle en continuar y muy bien ya estamos dentro del sistema ahora sí presionó en salir muy bien como ven ya me redirige acá a mi formulario de login y listo ahora lo que vamos a hacer es hay un tema acá de que se miren si yo ingresó nuevamente a mi página el cual es [Música] entonces como notarán yo puedo acceder nuevamente acá al sistema sin habérmelo guiado antes entonces lo que vamos a hacer es algo rápido acá vamos a hacer aplicar una lógica que no permita esto no porque ahí supuestamente la idea es que pueda lograr me y una vez logrado ya puede acceder a esta a estas vistas de acá de hong acerca de no puedo acceder a estas vistas si es que no me ha logrado vamos a añadir rápidamente esa lógica entonces acá dentro de mi proyecto voy a crear una nueva carpeta seleccionamos el nombre del proyecto clic derecho agregamos acá una nueva carpeta y a éste lo voy a llamar permisos o bien dentro de esta carpeta de permisos voy a agregar una nueva clase la clase lo voy a llamar vanidad sesión y le voy a agregar este acá que es atributo de esta forma quiero ver si lo escribí bien atributos y con doblete le vamos a agregar muy bien y esta clase vamos a añadirle bueno vamos a hacerle una referencia o una herencia a una clase de mvc el cual es action filter atributo muy bien nos va a tildar un error de esta forma simplemente pasamos el cursor clic acá en este foco y vamos a hacerle a causar esta referencia de existe en web punto ms y como pueden ver acá ya se nos agrega esa referencia ya no tenemos errores y acá lo que vamos a hacer es simplemente hacer un 9-1 método vamos a esos sobreescribir un método predeterminado voy a ponerle public coveright en boys y va a ser el siguiente método alcanza persona lista de métodos que va a ser el un action executive de acá el que tiene como atributo bueno parámetro filter contexto seleccionamos o doble tabulación y listo entonces automáticamente ya nos configura toda la lógica de ese método así que acá nosotros vamos a agregar una lógica para que nosotros no podamos acceder a nuestra nuestra página aún así no hemos iniciado sesión recuerden que la validación debería ser por nuestro haber está acceso control listo entonces recordemos que el login lo que hace es crear una sesión como pueden ver acá y con esa sesión ya puede acceder a nuestro sistema que es halcón controller donde está en la vista de index sábado y todo ello entonces no debería poder acceder a hong controller a ninguna de sus vistas si es que antes no existe una sesión llamada usuario si no existe entonces no debería poder acceder a juan controller a ninguna de sus vistas entonces esa lógica vamos a aplicar acá en esta clase de esta forma que va a poner y acá voy a poner http context punto ocurre en punto sesión y acá entre corchetes voy a poner la sesión que estamos creando el cual de ese usuario así en minúscula y listo acá vamos a validar si es igual a nulo al ver abro y cierro llaves hoy entonces si si esa sesión usuario es igual a nula entonces lo que quiero que haga es que me filter contexto punto resulta si quiero que lo redirección hacia otra página entonces cabe poner ni un directo azul muy bien entonces como dije acá lo que quiero que haga es redireccionar la otra página para ello voy a poner este símbolo que es una colita de chancho y acá voy a ponerle acceso barra lo oí y entonces lo que yo quiero es que reaccione a este formulario que es login que está en el controlador de acceso nada más esto simplemente es en mi lógica que voy a aplicar acá cada vez que no se ha iniciado sesión aunque esta sesión usuario esté anuló lo que quiero es que redirecciona acá acceso al hoy y entonces guardamos los cambios ahora lo que vamos a hacer es aplicar nuestra clase de validar sesión hacia nuestro controlador con control de lo que vamos a hacer es simplemente dirigirnos a cajón controller y acá en la parte superior de nuestra clase de hong controller lo que vamos a escribir es el nombre de la clase que hemos creado simplemente voy a poner validar sesión actualmente nos reconoce la clase así que vamos a añadir la referencia de esta forma using vamos a poner el nombre de nuestro proyecto que es pruebas guión bajo el login ya que voy a poner punto permisos porque ahí es la carpeta donde se encuentra nuestra clase de validar sesión en realidad es validar sesión atributo pero nosotros podemos admitir simplemente el atributo poniéndolas y validar sesión nada más lo que va a hacer este esta clase de validar sesión es antes de que se ejecute en la vista de index la vista de apagado la vista de contacto antes que pase por cualquiera de estas vistas lo que va a hacer es ejecutarse primero en la clase validar sesión o sea va a ser todo esta lógica de aquí por eso el método se llama con action executive no sea antes de que se ejecute el tema de la acción de index about contar lo que va a hacer es primero ejecutarse está aquí sí vamos a ver ahora lo voy a poner un punto depuración acá este método y le voy a poner un punto de depuración acá el index vamos a ver con esto y confirmar de que realmente está sucediendo que primero se ejecuta este método de aquí y luego se va a ejecutar el método index en el caso de que no exista ningún usuario o sea no exista ninguna sesión lo que va a hacer es de direccionar la otra a la otra página y no va a ejecutar ya index ni abajo ni ninguno de ellos entonces ahora sí voy a dirigirme acá primero voy a arrancar con login muy bien entonces acá voy a copiar esta url y lo voy a pegar acá y acá voy a cambiar le voy a acceder o voy a tratar de acceder a home index te voy a dar en enter y como pueden ver acá mi punto de depuración arrancó en este método vamos a ver qué dice acá la validación si session usuario es igual a nulo miren es nulo o sea no hemos iniciado sesión todavía entonces no se ha creado en nuestra variable sesión entonces lo que va a hacer es redireccionar a login entonces continúa continúa y muy bien me redirecciona a mi página de login y como pueden ver nunca ha entrado a esta vista de acá index a pesar de que hemos dicho que acaba de iniciar como como vieron nunca se ha detenido mi punto de depuración acá dentro de este método de index entonces eso confirma que primero está ejecutando este método de una opción de securing antes de cualquiera de estos métodos de aquí entonces estamos confirmando eso que realmente nos sirve para validar si es que un usuario inicia sesión o no entonces lo que vamos a hacer ahora es simplemente continuar con el formulario de registrarse entonces acá bueno está iniciando con este con esta vista de registrarse aquí vamos a ver en continuar y bueno me devuelven el formulario de registrarme que actualmente está totalmente vacío entonces simplemente voy a copiar todo el diseño que trabaje en el login de esta forma miren copio todo y lo voy a llevar a mi formulario de registrar y lo voy a pegar acá bien entonces de esa forma ya estoy obteniendo todo el diseño que he trabajado en el formulario de login para implementarlo ahora en el formulario de registro lo primero que vamos a hacer acá es ubicarnos aquí en el foro el cual ahorita está haciendo una acción de un login acá vamos a cambiarle porque ahora va a ejecutar la acción de registrarse voy a copiar este acá y acá en un stand un formulario de registrar voy a reemplazar este login por registrar muy bien entonces acá me pide de estos campos lo que voy a hacer es añadir otro campo extra por ejemplo este de acá voy a copiar el que tengo acá arriba y lo voy a pegar acá muy bien porque como saben nuestro formulario de registrarse tenemos uno que es correo tenemos el otro que es para ingresar la contraseña y otro campo que es para volver a confirmar la contraseña así que el preescolar de acá lo voy a cambiar por contraseña y acá abajo le va a poner confirmar contraseña nada más acá en el nombre pues voy a ponerle clave y acá el de abajo voy a ponerle voy a buscar acá en mí en mi entidad o modelo usuario que se llama acá la propiedad se llama confirmar clave y esto es esto era la razón por la cual lo habíamos añadido al principio la vamos a utilizar ahora copiamos y lo vamos a llevar a que nuestro formulario de registrar y voy a reemplazar acá por este de clave por confirmar clave no que hace referencia al que nuevamente tenga que ingresar su contraseña acá voy a cambiarle me estaba olvidando que es un tipo password listo muy bien acá voy a verificar bueno acá el botón de iniciar sesión es todo está mal acá simplemente lo voy a poner que diga registrarse muy bien guardamos los cambios y ahora sí vamos a ver que nos falta más bueno acá en este tema de adicionar a otro formulario pues acá vamos a cambiar pues simplemente acá le voy a decir a ver que en vez de registrarse que diga iniciar sesión y este texto de acá bueno no tienes una cuenta que diga ya tienes una cuenta ya tienes una cuenta de esta forma ahora si guardamos los cambios y vamos a ejecutar el proyecto este correo contraseña confirmar contraseña registrarse y acá dice ya tienes una cuenta iniciar sesión pero acá todavía no le cambia donde tenía que estar en reelegirse como dice como ven acá está en el método de registrarse lo voy a cambiar por el nombre de login guardamos y así voy a actualizar el formulario presiono iniciar sesión y me lleva acá a mí formulario de lo que presionó a que haga registrarse muy bien entonces vamos a implementar la acción desde este botón de registrarse enviándole todos los datos que podemos ingresar acá quiero ver si es que está todo bien acá si estoy bien en esta parte aunque entonces ahora si lo que voy a hacer es poner un punto de depuración acá en el método de registrarse me dirijo al proyecto y voy a poner acá un correo que es 1 2 y 3 gmail.com contraseña debe poner 4 5 y 6 y acá 4 y 5 o 6 también a que en el tema de configurar contraseña le doy en registrarse lo que va a hacer es ejecutar mi método de registrar así que vamos a ver línea por línea primero va a validar acá que diga sí clave es igual a confirmar clave que bueno en esta oportunidad nos dice que si acá lo que va a hacer es encriptada la contraseña que 456 lo va a convertir a toda esta clave encriptada muy bien no hay errores entonces ahí vamos a conectarnos acá el procedimiento almacenado bueno pasa todos los parámetros que tienen que pasar tanto como un correo en clave entonces vamos a ver el resultado que he registrado donde secuestro entonces si ha sido registrado este usuario el mensaje dice usuario registrado muy bien entonces ahora lo que hice es para almacenar el mensaje de usuario registrado acá en viuda está ahora vamos a ver los view data como trabajar los entonces a continuar acá con el líder registrado con muestro lo que va a decir es directamente redirigir al formulario de login muy bien termina le voy a dar en continuar y como ven acá ya se ha redirigido directamente al formulario de login voy a ir a mi base de datos vamos a seleccionar la tabla usuario y como pueden ver acá ya tenemos a los dos usuarios que hemos creado no bueno el primero que ya teníamos y acá está el segundo que ahora hemos registrado que es uno dos y tres desarrollo email entonces lo que voy a hacer ahora es trabajar el tema de de los errores porque si yo pongo acá no sé voy a cambiar esto y pongo 1 2 y 3 y 4 si le doy a iniciar sesión muy bien no me permite acceder porque posiblemente no he encontrado un usuario con esas credenciales que puse pero el sistema no me lo indica así que lo que voy a hacer es poner un diseño acá para que nos ponga el mensaje o nos muestra el mensaje de error que está sucediendo como podrán ver acá voy a acceder a buscar la versión a ver gustar a versión 4 y voy a buscar un elemento que es alert seleccionó acá el primer resultado y yo quiero un mensaje de error tal y como está aquí voy a copiar el diseño que seguro lo tenemos aquí abajo nos dice que es de esta forma como podrán ver voy a copiar eso de allí y lo voy a llevar a cabo formulario de login y lo voy a pegar a ver de gm verdad no puedo pegar esto de acáp quisas acá está el botón de registrarse lo voy a poner acá simplemente aquí o dentro del formulario para ser más específico arriba del botón ahí es donde vamos a pegar lo pego muy bien entonces ahora voy a actualizar mi formulario para ver cómo está quedando el login control de f5 deben continuar y muy bien ahí está el mensaje de una alerta de error no actualmente este mensaje no debería aparecer debería aparecer el mensaje de error que posiblemente puede encontrar cuando el usuario han ingresado credenciales correctas pero mientras no esté sea elogiado este mensaje no debe aparecer así que lo que voy a hacer es ocultarlo y vamos a trabajar acá el tema de revisor el cual simplemente es utilizar código de sillar dentro del html para utilizar revisores iguales y arroba voy a poner ahora sí sentencias de código de si se puede utilizar el if y acá voy a poner sin vivió data es tiene algún valor récord en que habíamos trabajado el tema de la ciudad está que es este de aquí yukata voy a copiar miren copio simplemente y lo voy a llevar a mi login y acá lo voy a pegar dentro de él y si este big data que tiene como nombre mensaje es diferente de nulo o sea nos quiere decir que realmente ya tiene valor como ya ves entonces si tiene valor si ya tiene contenido esté viuda está lo que quieres que me muestra este mensaje de error miren voy a copiar bueno voy a cortar definitivamente ahora lo corto y lo pego acá dentro y en veces que muestre todo este mensaje de aquí voy a reemplazar con todo este vídeo data pero primero voy a poner una arroba y ahora si el viuda está muy bien entonces si es que hay un error lo que va a hacer es mostrar este cuadro de alerta de un danger es un cuadro rojo que nos aparece muy bien guarde los cambios y ahora sí voy a actualizar deben continuar como bien me dice usuario no encontrado porque viuda está todavía existía de la consulta anterior puede terminar la ejecución del proyecto y vamos a ejecutar desde cero veamos y como ven acá el cuadro de diálogo no me aparece el de error voy a iniciar credenciales incorrectas le voy a dar iniciar sesión y miren acá me aparece el cuadro de usuario no encontrado ahora voy a ingresar con uno que si existe le doy a iniciar sesión y me dirigí al formulario ya donde podemos con acerca de y contactos que prácticamente sería nuestro sistema voy a darle en salir y como pueden ver acá el formulario ya no aparece ese mensaje de error solamente aparece en el caso de que ingrese credenciales incorrectas de iniciar sesión ya está se actualiza el formulario todo y ahora si me aparece el cuadro de diálogo del error entonces esa misma lógica simplemente voy a copiar y lo voy a llevar a mi formulario de registrar voy a poner justo arriba del botón de registrarse le voy a pegar acá voy a validar si mi viuda está acá tiene el mismo nombre que es mensaje donde esta es la parte superior si ayuda está tiene el mismo nombre acá en el método de registrarse así que está bien lo guardo todos los cambios y voy a ejecutar voy a terminar la ejecución al proyecto y desde cero otra vez veamos acá muy bien correo voy a poner el de jose está bien la contraseña 3 1 2 y 3 3 1 2 y 3 y voy a darle en registrar le corren que este correo y existe ya tenemos ha registrado en nuestra base de datos y voy a dar línea en registrarse bueno acá he puesto un punto de depuración a este método acá voy a darle todo siguiente bueno para que nos sirva al menos para mostrar el resultado no dice ha registrado es igual a falso y el mensaje que dice correo ya existe muy bien entonces ahora el view data está almacenando este este mensaje que tiene como valor correo ya existe si registrada es igual a igual a falso entonces lo que va a hacer es retornar no simplemente la vista debe dar en continuar y como pueden ver ahí ya me aparece este mensaje que dice correo y existe muy bien entonces yo tengo que iniciar con una credencial que bueno un correo que no existe voy a poner 1 2 3 1 2 y 3 le voy a dar en registrarse muy bien voy a dar en continuar porque ya sabemos qué sucede acá y como pueden ver ya me eligió a mí formulario de login y listo entonces ahora si yo puedo iniciar con esas credenciales voy a salir select y voy a probar acá la contraseña no me recorre muy bien 1 2 y 3 creo que puse ahí está sí muy bien esa edad entonces como podemos ver ahí podemos iniciar sesión salimos muy bien y ahora si yo copio esto de acá y lo pego acá y quiero acceder ya al sistema donde una vez que hemos iniciado sesión si yo quiero acceder a esa ruta como pueden ver ya no puedo acceder porque porque simplemente no iniciado sesión antes para poder acceder al sistema que nos lleva en nuestro logo entonces eso ya sería todo por el vídeo el proyecto lo voy a estar subiendo y compartiendo acá para en un mediante un enlace para que ustedes puedan descargarlo muy bien eso sería todo entonces me despido [Música]