Registro y Login funcional en Javascript con node y express - guía paso a paso

  Рет қаралды 26,170

Punto Json

Punto Json

Күн бұрын

Vamos a crear un sitio web con un formulario de registro, una pantalla de inicio de sesión y una página que sólo se puede acceder si iniciamos sesión. Para eso vamos a crear un servidor en node con express para manejar tanto el front como el backend. Si te interesa aprender a desarrollar un sitio como este y aprender los procedimientos que hay detrás de un registro de una cuenta (con el guardado de la contraseña de manera segura), la comprobación de las credenciales de login con JWT (json web token) y el manejo de accesos a distintas partes de un sitio web estás en el lugar indicado.
Vamos a usar un montón de librerías: express, nodemon, bcryptjs, jasonwebtoken, cookie-parser y dotenv.
Copiate mi código! github.com/cacalo/Registro-y-...
¿Querés agregar un mail de confirmación al registro? Lo hacemos en el video que viene! • Envio de emails de ver...
Timestamps:
00:00:00 - Intro
00:00:27 - Creación de proyecto y dependencias
00:05:48 - Configuración del servidor y ruteo
00:15:39 - Diseño de formularios - Frontend
00:33:16 - Registro (Funcionalidad)
00:47:57 - Hash y salt de contraseñas
00:58:49 - Login (Funcionalidad)
01:06:49 - Generar token JWT
01:17:44 - Cerrar sesión
01:19:04 - Autorización
01:33:52 - Ventajas sobre HTML sin server

Пікірлер: 150
@matiasbruna13
@matiasbruna13 6 ай бұрын
Profe un gusto muy bien explicado todo. con detalle! saludos !
@puntojson
@puntojson 6 ай бұрын
Gracias! Saludos!
@sergio2524
@sergio2524 7 ай бұрын
Un genio muy buen video, gracias por compartir
@puntojson
@puntojson 7 ай бұрын
Muchas gracias! 😊
@facundosilveira7366
@facundosilveira7366 3 ай бұрын
Man, sos un capo, sin palabras, todo clarisimo...
@puntojson
@puntojson Ай бұрын
Gracias Facu! :D :D
@federicodemeco2065
@federicodemeco2065 4 ай бұрын
Grosisimo! Muy bien explicado! :D
@puntojson
@puntojson Ай бұрын
Gracias Fede!
@karimantoniosotolopez1441
@karimantoniosotolopez1441 3 ай бұрын
muchisimas gracias por tus videos, la verdad es admirable que gente dedique de su tiempo para ayudar a otros.
@puntojson
@puntojson Ай бұрын
Gracias! Es cierto que lleva bastante tiempo :)
@SolaPazEnergy
@SolaPazEnergy 4 ай бұрын
Muy bueno todo este trabajo amigo y me lo voy a tomar en serio con todas estas explicaciones dadas. Gracias y saludos
@puntojson
@puntojson Ай бұрын
Gracias! Los hago largo a los videos para que se lo tomen en serio!
@carolinasalomrivero4788
@carolinasalomrivero4788 8 ай бұрын
Verdaderamente genial este video.... Muchas gracias por este contenido. ME has sacado un montón de dudas...
@puntojson
@puntojson 8 ай бұрын
Me alegra haberte podido sacar esas dudas! 😊
@FRANSHUGOOBREGONFIGUEROA
@FRANSHUGOOBREGONFIGUEROA 4 ай бұрын
Excelente explicación , nuevo suscriptor!
@puntojson
@puntojson Ай бұрын
Gracias! Nos vemos en futuros videos!
@urrutiace
@urrutiace 3 ай бұрын
Ame este tutorial, re bien explicado!
@puntojson
@puntojson Ай бұрын
Muchas gracias!! ❤️
@sherlockh.4238
@sherlockh.4238 5 ай бұрын
Muy útil, realmente no sabia como encarar el tema del login en Node pero con esto me quedo mas claro manejar el tema cookies
@puntojson
@puntojson 4 ай бұрын
Me alegra que te haya servido!
@fredericarias3081
@fredericarias3081 5 ай бұрын
muy buen turorial, muy claro y sencillo para quienes estamos aprendiendo
@puntojson
@puntojson Ай бұрын
Gracias Frederic!
@nahueldiaz4047
@nahueldiaz4047 6 ай бұрын
Un lujo amigo
@puntojson
@puntojson 6 ай бұрын
Gracias! Espero que te haya servido!
@kimberlysoler592
@kimberlysoler592 8 ай бұрын
Buenas noches, quería pasar por acá agradeciendo por la explicación del video, me ayudó bastante para poder crear mi propio formulario desde express.js
@puntojson
@puntojson 8 ай бұрын
Me alegra que te haya servido!
@edermartinez8773
@edermartinez8773 Ай бұрын
Que increíble video, pude reforzar mis conocimientos con el
@puntojson
@puntojson Ай бұрын
Joya! Me encanta que aprendan
@RicardoGarcia-wk8ds
@RicardoGarcia-wk8ds Ай бұрын
Nuevo suscriptor, excelente forma de explicar y muy completo.
@puntojson
@puntojson Ай бұрын
Gracias Ricardo! Nos vemos en próximos videos!
@nelsonrivera6036
@nelsonrivera6036 6 күн бұрын
Excelente, muchas gracias
@puntojson
@puntojson 6 күн бұрын
De nada 😊 Gracias por pasarte!
@WayraInnovaTech
@WayraInnovaTech 21 күн бұрын
Gracias por este magnífico tutorial 👍👍👍
@puntojson
@puntojson 21 күн бұрын
De nada! Me alegro de que te haya gustado!
@spookybone
@spookybone 17 күн бұрын
Muchas gracias profe, me salvaste
@puntojson
@puntojson 17 күн бұрын
De nada 😊
@javierarango4610
@javierarango4610 5 ай бұрын
uff 10/10 muy buena explicación nuevo sub, voy aprendiendo node desde cero sin duda con esto y mias bases podre hacer un proyecto bastante seguro, muchas gracias!! y te mereces mas like es muy poco lo que te doy por este valioso contenido!!
@puntojson
@puntojson 5 ай бұрын
Gracias por tu hermoso mensaje! Suerte en este camino del desarrollador!
@fuerteviento2133
@fuerteviento2133 8 ай бұрын
Excelente video ,💪🏼💪🏼muy completo y explicado de una manera increíble, estaría increíble que siguieras subiendo este tipo de videos de Nodejs, Muchas Gracias. Saludos desde Colombia
@puntojson
@puntojson 8 ай бұрын
Ya son varios que quieren nodeJs, relamente lo tengo que seguir haciendo..!
@erickpavon9607
@erickpavon9607 Ай бұрын
Muy buen login 🤩
@puntojson
@puntojson Ай бұрын
Gracias 😁
@miguelthomann2098
@miguelthomann2098 3 ай бұрын
Excelente video, muchas gracias, creo que me va a ser útil para un proyecto de una app para operar la base de datos que usa una e-comerce, por ejemplo
@puntojson
@puntojson Ай бұрын
Claro que sí! Con esto ya se puede hacer casi de todo. Aunque si vas a hacer sólo un ecommerce "normal" hay soluciones hechas por otras personas que quizás te sirvan mejor.
@carlosmbravoa
@carlosmbravoa Жыл бұрын
EL video que necesito y tengo rato buscando
@puntojson
@puntojson Жыл бұрын
Ojalá esté a la altura!
@puntojson
@puntojson Жыл бұрын
Me apareció en las notificaciones que tenías un problema, pero cuando entro al video el comentario no está! ¿Lo pudiste solucionar y borraste o seguís trabado?
@carlosmbravoa
@carlosmbravoa Жыл бұрын
Gracias por tu interes, escribí tal cual tu tutorial pero no mostró el template. Lo solucioné pero de forma distinta, tuve que escribir '/public/pages/index.html'. No entiendo por qué?🤣
@puntojson
@puntojson Жыл бұрын
@@carlosmbravoa Sin el __dirname?? 😵‍💫😵‍💫😵‍💫😵‍💫 emm tiene pinta de que debe haber un cambio en algún otro lado porque a mí no me funcionaba así jajaja
@carlosmbravoa
@carlosmbravoa Жыл бұрын
@@puntojson con el __dirname pero la declaración de public solamente no basto, debí colocar el endpoint completo. Aquí vamos 🤣🤣 así aprendemos más 🤣
@sabripereira
@sabripereira Жыл бұрын
Me re sirve aprender un poco sobre como generar un token y algo de autorización 😅😅 gracias!!
@puntojson
@puntojson Жыл бұрын
Register y login, los vas a tener que hacer sí o sí :) Gracias pro estar!
@sabripereira
@sabripereira Жыл бұрын
@@puntojson A vos por los videos 😁
@julianhincapie3007
@julianhincapie3007 9 ай бұрын
Deberías continuar esta web a mi me ha servido mucho.
@puntojson
@puntojson 9 ай бұрын
Gracias! Lo voy a tener en cuenta
@julianhincapie3007
@julianhincapie3007 9 ай бұрын
@@puntojson uy por favor, asi sea un crud de el register, me esta sirviendo mucho para un bootcamp en el que estoy, con esto inicié el proyecto😅, "respondí por que no creí que me ibas a contestar jaja", gracias.
@R3flexx2001
@R3flexx2001 Ай бұрын
Muchas gracias por tu video, anda excelente. Un único detalle, en las funciones soloAdmin y soloPúblico hay que poner un await en la variable loggeado. Saludos!
@puntojson
@puntojson Ай бұрын
Gracias por comentar! Veo en el código que la función revisarCookie() no es async, por lo que poner un await en loggeado=revisarCookie() no debería tener efecto. Quizás escribiste algo distinto a mí porque creo que sino no me tendría que funcionar. O quizás me confundí en algo, tampoco sería tan raro jajaja
@ejohanriascos
@ejohanriascos 4 ай бұрын
¡Genial! Puedes hacer uno sobre filtros a traves a un "search bar" seria genial si usaras una base de datos tambien con este idea que propongo! Bueno saludos desde Colombia
@puntojson
@puntojson Ай бұрын
Me gusta la idea, no sé si para un video exclusivo pero sí para integrar dentro de otro, me la anoto!
@ariel18012
@ariel18012 9 ай бұрын
Fantástico video profe, completísimo, me dio muchísimas ideas, y por esto ya me suscribí al canal, se que su gusto es por angular, pero podrá aporta los mismos proyectos para react js, ojala que si. Saludos!!!
@puntojson
@puntojson 8 ай бұрын
Gracias! React va a estar complicado que haga algo..! Estoy siempre repasando Angular para laburar y para mis alumnos de la facultad. :/ Espero que el resto del contenido te sirva!
@ariel18012
@ariel18012 8 ай бұрын
@@puntojson claro que si amigo y como se agradece. No hay casi nada de comunicación de Backend con Frontend-Vanilla, y al nivel que lo haces vos y en español. Sigue así...!!!
@puntojson
@puntojson 8 ай бұрын
Gracias por la buena onda!! Justamente backend y frontend vainilla no es mi preferido, y generalmente no se usa porque las opciones modernas traen ventajas reales, al menos al trabajar con frontend que es lo que más hago. Pero voy a intentar subir más videos de este estilo..!
@g4bri3ltt88
@g4bri3ltt88 5 ай бұрын
Angular es el framework de js no?
@brunocollazo4062
@brunocollazo4062 10 ай бұрын
SOLUCIONADO GRACIAS SOS CRACK!
@puntojson
@puntojson 10 ай бұрын
Tiene pinta de que le erraste en poner la variable de entorno del secret cuando revisas el jwt. Sin el código es difícil decirlo con certeza.. Si lo subis a github quizás lo pueda revisar!
@brunocollazo4062
@brunocollazo4062 10 ай бұрын
@@puntojson Logré solucionarlo, efectivamente era un error en el .env Ahora estoy en proceso de conectarlo con la base de datos Strapi, algún consejo/video que recomiendes para ir aprendiendo?=
@puntojson
@puntojson 10 ай бұрын
Nunca usé Strapi, asique hasta acá llega mi ayuda! :/ @@brunocollazo4062
@brunocollazo4062
@brunocollazo4062 10 ай бұрын
@@puntojson Bueno, muchas gracias igual, crack total. Sigo pendiente de tus siguientes videos. Todos muy buenos y utiles. Saludos
@josedavidgonzalezguevara7857
@josedavidgonzalezguevara7857 Ай бұрын
Infinitas gracias!!!!!!!, me ayudaste un monton 🙏, todo mi respeto y admiración para ti. Tengo 2 consultas : 1. Como le hiciste para aprender todo eso, parece que te supieras cada linea de codigo de memoria, si quiero llegar a dominar node y todos esos conceptos como tu, como tengo que estudiar ? 2. Que curso me recomiendas de Node js desde cero, hice este tutorial para una tarea de mi facultad, pero aun no he empezado a aprender node. De nuevo mil gracias, bendiciones.
@puntojson
@puntojson Ай бұрын
De nada José! Te respondo las consultas : 1) Hablo y explico con tanta confianza porque al proyecto ya lo hice de antemano, y si bien estoy escribiendo todo en vivo suelen pasar sólo un par de días desde que lo hice y lo tengo fresco en la memoria! Además tengo el código en otro monitor para quedarme tranquilo. 2) No te puedo recomendar nada porque yo aprendí node por KZfaq, con videos como este! Antes de aprender node tenía otras experiencias, asique si bien aprender con videos así a mí se ve da muy bien, depende de cuánto sepas de programación en general y tus experiencias para ver cuanto de un video podés absorber. Mi método n1 para aprender es querer construir algo y buscar como se hace, no aprender herramientas aleatorias y esperar que en el futuro me sirvan. Espero que mi respuesta te sirva. Saludos!
@marcosrusch5415
@marcosrusch5415 10 ай бұрын
Hola como estas? excelente el video tutorial, te consulto estoy haciendo un proyecto de ecommerce utilizando nodeJs, Express, mysql2 y ejs, cuestión que cuando el usuario este validado necesito modificar el frontend para que en vez de que aparezca login sea logout, pero no entiendo como tomar la información de que esta validado el usuario para implementar esas modificaciones desde el Js de front,
@puntojson
@puntojson 10 ай бұрын
Buenas Marcos! Un par de maneras: *En principio, teniendo en cuenta el ejemplo de este video, las páginas son o para users logueados o para users no logueados, como el middleware ya revisa eso en las páginas que dicen "login" son exclusivas para gente sin loguearse, o viceversa. *Si tus páginas son compartidas, entonces se me ocurren algunas variantes: 1) Revisar si tenés una cookie guardada y confiar en que la cookie está bien (No la podés validar en front end porque tendrías que guardar la clave secreta de JWT en el front). 2) En vez de confiar en el paso anterior podés crear un endpoint en el back que lo revise y llamás a esa URL cuando entrás a una página. (También es vulnerable a ciertos ataques). 3) En vez de servir archivos estáticos y modificarlos en el front, podrías generar (renderizar) el HTML desde el back y ya servirlo al front con el texto correcto, esta manera es la más segura, pero tiene pasos extras que no contemplé en este video, en donde sólo sirvo archivos HTML estáticos al front. Por más de que la correcta sea la 3, si estás en un proyecto que no maneja información sensible o si el cambio de un user logueado a uno no logueado no es demasiado grave, entonces la opción 1 podría ser suficiente. Dejame saber si fui claro y si entendiste! Saludos!
@tor-code
@tor-code 10 ай бұрын
Excelente, me gusto mucho y con una explicación de 10👌. Como puedo conectarlo a una base de datos PostgreSQL, cree que pueda hacer un capitulo con el tema? o tiene algun curso relacionado? Estoy aprendiendo ya que tengo que migrar una aplicacion de escritorio a Web. Muy agradecido con este capitulo, un suscriptor mas porque veo que tiene videos muy interesantes, saludos 👍💯
@puntojson
@puntojson 10 ай бұрын
Gracias por tu mensaje! El único video que tengo que te puede ayudar es mi backend básico con mysql => kzfaq.info/get/bejne/i6uamZqcmJjRhJs.html No es con Postgre pero no creo que sea demasiado distinto, sólo hay que cambiar la librería y el SQL es lo mismo, sql. Si eso no es lo que buscás te comento que tengo una idea de hacer un curso de back (para el front que estoy creando en el curso actual), pero eso no lo tendría hasta dentro de varios meses. Nos vemos en algún próximo video :)
@tor-code
@tor-code 10 ай бұрын
@@puntojson Muchas gracias, revisare ese video que comenta y veré que tal me va, y los de Angular que hay en su canal. Sera bienvenido el curso de back, y una pregunta mas... da tutorías personalizadas en algunas dudas que surgen o cosas que no me resulten bien, claro con su costo respectivo, ya que me interesa muchísimo? Muchas gracias.
@puntojson
@puntojson 10 ай бұрын
@@tor-code Buenas! Hasta ahora no lo he hecho una mentoría personalizada (al menos no a alguien de afuera, sí a mis alumnos de la facultad todo el tiempo), pero podríamos charlarlo.
@tor-code
@tor-code 10 ай бұрын
@@puntojson Bien, veré mas de sus cursos y documentarme y pruebas, cuanto tenga el proyecto le dejare mensaje para de ser posible alguna mentoría , muchas gracias👍🏻
@puntojson
@puntojson 10 ай бұрын
@@tor-code Joya! Ahí estuve revisando y también subís un montón de videos! Que bueno encontrar un colega. Nos hablamos.
@ghoulhex2
@ghoulhex2 11 ай бұрын
en el caso de que quiera agregar diferentes rutas dentro del entorno de admin, el enrutamiento deberia hacerse desde el index.js? por ejemplo, tengo una web armada pero las paginas estan enrutadas con html, todo muy basico. si quiero agregarlas a este proyecto, para que no pueda ingresarse a esas rutas sin antes haber iniciado sesion, solo basta con llamar al script en cada uno de esos html o habria que hacerle algo mas? impecable explicacion, me sirvio banda, muchas gracias!
@puntojson
@puntojson 11 ай бұрын
Hay distintas maneras de hacer el enrutamiento por roles, si usás un servidor de express como hago en este video, entonces tenés que tener el front y el back todos juntos en la aplicación de nodejs y express. Después te creás una ruta nueva desde app.get() y le ponés un middleware que revise si tenés permiso de ver esa página o no. Si tenés permiso te manda la página que ya tenés creada, y si no tiene permiso le mandás un redirect al "home" o a "register". Osea, es lo que me estás escribiendo. Gracias por el comentario y me encanta poder haberte ayudado!
@sergioperez8971
@sergioperez8971 2 ай бұрын
Hola estimado!!! muy bueno el tutorial!! Como hace poco que empecé a estudiar JS, estoy haciendo mis primeras prácticas tratanto de desarrollar BE y FE por separado y en esta oportunidad no me estoy dando cuenta como estructurarlo al sistema de login/registro con esa arquitectura... los HTML y JS de login y registro, van del lado del FE o separados, los HTML en el FE y los JS en el BE?? Y la carpeta "publica" en donde estaría? Desde ya muchisimas gracias!!!
@puntojson
@puntojson Ай бұрын
Buenas! Si hacemos todo por separado, las carpetas pages y public serían FE y el resto (index.js, controllers y services) serían BE. Todo lo que es HTML, CSS o JS cargado en un html sería FE. Lo que está dentro de la carpeta pública acá, iría en carpetas llamadas CSS, JS.
@sebastianriveramira7762
@sebastianriveramira7762 5 ай бұрын
M O S T R O
@puntojson
@puntojson 4 ай бұрын
Gracias máquinaaa!
@floyd844
@floyd844 2 ай бұрын
Hola, cuál es la diferencia de usar path en __dirname que simplemente usar import.meta.dirname? Lo segundo no trae ya la ruta desde la raíz?
@puntojson
@puntojson Ай бұрын
Emmm la verdad es no estoy seguro. Quizás hubo un cambio en la manera de lograr lo mismo. Esa línea la vengo heredando hace bastante y quizás es hora de actualizarla.
@DanielMorales-ms6kv
@DanielMorales-ms6kv 7 ай бұрын
Buen video, pero tengo una duda, puedo usarlo como una api para consumirla tanto en una página web como en una app móvil?
@puntojson
@puntojson 7 ай бұрын
Sí! Si querés hacer una API te recomiendo igual dos cosas: * Si querés una API rápida y segura, te conviene trabajar en otro lenguaje (C# con .net, Java, etc), nodeJs funciona bien para aplicaciones tranca pero no escala de la mejor manera. * Si querés que sea sólo api sin la capa de la vista, osea sin renderizar nada de html css y js para el cliente, entonces te recomiendo que hagas sólo rutas controladores y servicios, y manejes todo lo relacionado a vistas desde la aplicación de frontend, que será completamente aislada de tu api! Saludos!
@necrobaku811
@necrobaku811 9 ай бұрын
no es necesario tener una base de datos como sql o postgre para realizar el login? donde se esta guardando la info?
@puntojson
@puntojson 9 ай бұрын
Exactamente! En este momento estoy guardando todo en la memoria ram del dispositivo server, osea que se borra todo cuando cargas la app! Sin embargo dejo todo para que de manera sencilla conectes una base de datos.!
@luisnorton3100
@luisnorton3100 Ай бұрын
Hola, buen contenido! Si puedes agrandar un poco mas el código, sería genial
@puntojson
@puntojson Ай бұрын
Buenas! Gracias por el comentario! Cada vez que grabo pongo un tamaño de texto cualquiera, me voy a tener que poner las pilas en dejarlo siempre un poco más grande.!
@josedavidgonzalezguevara7857
@josedavidgonzalezguevara7857 Ай бұрын
Yo hago zoom a la pantalla y se ve perfecto. Saludos.
@luisnorton3100
@luisnorton3100 Ай бұрын
@@josedavidgonzalezguevara7857 Hola, gracias por responder. En mi ordenador cuando hago sum, el video se distorsiona, debe ser mi equipo! Pero le he mandado el mismo mensaje a otros y han mejorado el sum y los videos son geniales. estoy entre las personas que tenemos problema de visibilidad
@nickvidzhd845
@nickvidzhd845 8 ай бұрын
Hola profe!, muchas gracias por el video. Estoy teniendo un inconveniente al momento del login mas exactamente en la parte del Fetch. Se supone que debe redirigir hacia el /api/login sin embargo al momento de hacer el post dice que no lo encuentra (Error 404). Muchas gracias!
@puntojson
@puntojson 8 ай бұрын
Mmm 404 es no encontrado (como bien decís), generalmente estos errores no son complejos y es un error de tipeo, hay dos lugares en donde puede haber problemas: 1) En el fetch podés estar poniendo una dirección errónea, quizás con un error de ortografía. Osea, estás queriendo hacer un fetch a un lugar que no existe. 2) En el index.js donde tenés el app.post("/api/login") quizás podés tener o un error de ortografía en el endpoint o no es post. Osea, por más de que existe un lugar, este no es el que pensás y entonces nunca estás recibiendo una comunicación en ese endpoint. Decime si algo de esto de ayuda! Se me complica sin el código! Saludos!
@WILLIAMANDRESBARREROCARMONA
@WILLIAMANDRESBARREROCARMONA 3 ай бұрын
que tendría que hacer resumidamente si quiero que se puedan loggear 2 tipos de usuarios y dependiendo del usuario les muestre una u otra cosa?
@puntojson
@puntojson Ай бұрын
Si mirás por este video hace rato respondí lo mismo a otro usuario con detalle. Tenés que tener una propiedad ROL en la tabla de usuarios, y luego al hacer login leer el rol y cambiar el redirect que te hace cuando hacés login a distintos lugares. También en la autorización vas a tener que revisar no sólo si la persona está logueada, sino que vas a tener que revisar si ese rol tiene permiso para lo que te pide.
@JorgeRustrian
@JorgeRustrian 8 ай бұрын
uff tu video es de gran ayuda. Pero tengo una consulta, supongamos estoy construyendo una web con 3 tipos de usuarios: pacientes, doctor, y enfermera, tengo problema en lo siguiente, el paciente loggeado debe llenar un formulario, y enviarselo al doctor que eliga, por lo que no s ecomo pasar los datos del formulario al perfil del doctor
@puntojson
@puntojson 8 ай бұрын
Buenas! Espero que mi respuesta no llegue demasiado tarde! Para hacer lo que querés necesitás usar de las relaciones que te puede dar una base de datos relacional. Cuando el paciente complete su formulario, uno de los campos debería ser a qué doctor se lo quiere enviar, ese "select" debería guardar en el formulario el ID del doctor al cual está destinado el formulario. Luego desde el rol "doctor" deberías poder ver una lista de los formularios subidos filtrados por su id_doctor. Esto haría que cada doctor vea sólo sus formularios y no el de los demás. Espero que esto te sirva!
@gabrielnivar2377
@gabrielnivar2377 9 ай бұрын
buenas tengo un problema cuando trato de conetarme en el puero 4000
@puntojson
@puntojson 9 ай бұрын
Buenas! Me dirías cuál es el problema? Explicalo como puedas.!
@pabelorlandochaparromanriq8077
@pabelorlandochaparromanriq8077 2 ай бұрын
Una pregunta urgente, Si tengo 3 usuarios: Admin, Regular, Vendedor cada uno se diferente por el rol que se les da en la base datos, ¿ Como hago que en la autorizaciones los dirija a diferentes pantallas de logeo pero que los otros no puedan ver esas pantallas?
@puntojson
@puntojson Ай бұрын
Perdón! Sé que dijiste urgente pero recién te veo! Básicamente tendrías que revisar antes de la línea 41 del authentication.controller github.com/cacalo/Registro-y-login-nodejs-express-en-vivo/blob/main/app/controllers/authentication.controller.js el rol del usuario, y con un if o un switch cambiar el redirect de la línea 41. Saludos!
@hernandw
@hernandw 2 ай бұрын
Hola procesan el formulario en el html. Pero puedes mandar directamente los datos del formulario al backend. porque el backend recibe un body. porque entonces hacerla la logica en el frontend.. para luego enviarlo igual enviar un body al backend no es reduntante..?
@puntojson
@puntojson Ай бұрын
Es redundante! Exactamente. La validación de datos en frontend se hace para dar una mejor experiencia al usuario, está bueno que te digan que tu contraseña tiene que tener 8 caracteres antes de enviar todo y que vuelva con error. La validación en backend se hace porque es la única validación que el cliente teoricamente no puede "saltearse", ya que la validación de frontend se puede evitar de muchas maneras. Para tener seguridad de datos y buena experiencia de usuario vamos a tener que hacer las 2.
@NahuelHermosilla-hb6qi
@NahuelHermosilla-hb6qi 26 күн бұрын
en caso de querer hostear la pagina ej: Netlify como hago? por que hice el index.html pero a la hora de redirigir con un boton a la pagina del login me aparece en blanco pero si lo abro directo desde el localhost si me aparecen todos los estilos etc etc
@puntojson
@puntojson 26 күн бұрын
Es que no lo vas a poder hostear en netlify (creo) , lo tenés que hostear en heroku u otro servicio que hostee aplicaciones de node. Hay algunos gratuitos dando vueltas pero no te podría recomendar ninguno. Googlea como hostear nodejs. En un futuro tendría que hacer un video de eso.!
@user-dc4xl5wz2m
@user-dc4xl5wz2m 5 ай бұрын
profesor todo un crack pero un favor es trate de entro por medio de mi celular la api creada en el pc carga el html y lo demás para cuando enviar los el formulario por el navegador del celular no hace nada investigue indica es por lo lo CORS , huy seria genial como solucionar ese problemas gracias.
@puntojson
@puntojson Ай бұрын
Buenas! 2 cosas a tener en cuenta. 1) Si estás del celular y el servidor lo tenés en otro dispositivo, quizás haya que cambiar todas las referencias de "localhost" a la dirección IP real del server. 2) Si trabajamos con dispositivos distintos (el server no es el cliente) entonces tenemos que usar cors, es tán facil como poner en el index.js github.com/cacalo/Registro-y-login-nodejs-express-en-vivo/blob/main/app/index.js un middleware de cors, mirá como lo hice en este archivo github.com/cacalo/Cocheras-basico-backend/blob/main/src/app.js
@miguelseguias2211
@miguelseguias2211 7 ай бұрын
a mi me esta pasando que hago bien el registro, pero cuando le doy a iniciar sesion, me sale en el node "jsonwebtoken\sign.js:111 return failure(new Error('secretOrPrivateKey must have a value'))"
@puntojson
@puntojson 7 ай бұрын
Migue! Te fijás si le estás proveyendo a jwt la clave secreta? Sin ese dato jwt no sabe con qué clave encriptar y firmar el token que se genera! Fijate de tener la clave secreta en el .env y dársela correctamente a jwt
@dyvfyh3419
@dyvfyh3419 6 ай бұрын
Oye una duda, mi cmd por alguna razon cuando lo abro y trabajo con el durante un nos cuantos segundos se me cierra solo Hay alguna forma de arrancar sin usar la consola o no?
@puntojson
@puntojson 6 ай бұрын
Que raro! Si no podés usar el CMD hay otras consolas que también sirven. Por ejemplo en windows tenés el powershell, que es otra consola. La primera vez que intentes ejecutar un script te va a dar un error de permisos, que para solucionarlo vas a tener que copiar y pegar un código, que no tengo a mano, pero es algo de setExecutionPolicies: allow (lo vas a tener que googlear). Te recomiendo que en vez de buscar un parche, veas como solucionar lo de la consola, porque si bien ahora puede que no te trabe, es algo que te va a molestar en mucho dentro de tu camino de programador. También podrían intentar abrir la consola desde VScode o tu editor de preferencia, quizás ahí no se cierra.
@dyvfyh3419
@dyvfyh3419 6 ай бұрын
@@puntojson he probado con powershell y la consola de vscode Todos acaban con el mismo resultado, el problema comenzo cuando me instale frameworks 3.5 en el 2022
@puntojson
@puntojson 6 ай бұрын
A desinstalar todo, uno a uno probando. Si nada resulta siempre queda la opción final, un lindo formateo a la pc. Ojalá lo puedas resolver.
@sgvbox
@sgvbox 5 ай бұрын
Por qué no usar un label hidden?
@puntojson
@puntojson Ай бұрын
Si ocultas visualmente objetos con significado semántico con display:none o hidden puede confundir a los lectores de pantalla. Por eso una solución "más o menos" es mandarlo bien lejos!
@tomasandresmartinez3625
@tomasandresmartinez3625 7 күн бұрын
no se que me pasa paro no me deja ingresar al admin
@puntojson
@puntojson 7 күн бұрын
Sin más data imposible saber que hacer! Fijate si hay logs en la terminal o en el navegador y avisame!
@jhon9490
@jhon9490 11 ай бұрын
Me salia un erro a la hora de hacer el token por exportar el jsonwebtoken de esta manera: "import { JsonWebTokenError } from "jsonwebtoken";". Encontre una solucion, exportarlo distinto, asi: import jwt from 'jsonwebtoken'; Adicionalmente a eso, tambien tuve que cambiar la linea de codigo: "const token = jsonwebtoken.sign(...)" por "const token = jwt.sign(...)"
@puntojson
@puntojson 11 ай бұрын
Gracias por el aporte! Quizás le sirve a otro espectador 😊
@jhon9490
@jhon9490 10 ай бұрын
este proyecto se puede considerar una api?@@puntojson
@luciamorua6720
@luciamorua6720 19 күн бұрын
Hola, al inicio del proyecto no me toma el archivo css ni js. Me tira un error de MIME. Está todo bien escrito. Incluso copié de tu código de github
@puntojson
@puntojson 18 күн бұрын
Pueden ser varias cosas! Fijate si cuando vinculás los archivos js y css el href empieza con /, es importante que sea así para que el navegador busque los archivos dentro de la carpeta de proyecto. Avisame que tal y si seguís con problemas compartime algo del código. Saludos!
@luciamorua6720
@luciamorua6720 18 күн бұрын
@@puntojson te paso el HTML Iniciar sesión Prueba
@luciamorua6720
@luciamorua6720 18 күн бұрын
Ya probé poniéndole solamente /style.css y me salta que no existe y me pregunta si deseo crear un archivo que se llame así. Así que probé de la forma que te acabo de pasar y si me lleva al archivo que ya cree..
@puntojson
@puntojson 18 күн бұрын
Me podrías poner un link a una captura de pantalla donde se vea la estructura de carpeta y archivos de tu proyecto? También podrías subir todo a github y mandarme el link si sabés como hacerlo. Tengo el presentimiento de que, o tus nombres de archivos se llaman distinto, o están en otras carpetas. Cuando completás los nombres de los archivos, usas el auto completado del editor?
@davidtabora575
@davidtabora575 Ай бұрын
El programa no funciona con versiones recientes, hice todo al pie de la letra y solo errores me da cuando ejecuto el servidor.
@puntojson
@puntojson Ай бұрын
Buenas! Me podrías decir que errores estás teniendo? Quizás no es un tema de versiones (o quizás sí)
@Tiankiss
@Tiankiss Ай бұрын
@@puntojson Yo tenogo un error a la hora del tema con las cookies, al parecer el servidor recibe la respuesta pero no actua en nada, y para añadir, salta error aun asi siendo crrecto todo
@puntojson
@puntojson Ай бұрын
@@Tiankiss Buenas! No te termino de entender. El servidor no debería recibir respuestas, recibe solucitudes y crea las respuestas para luego enviarlas al cliente. ¿Qué dice el error que te aparece?
@noalbullyngbro4078
@noalbullyngbro4078 Ай бұрын
@@puntojson Como va, este es mi repositorio Tiankissdev/ProgramacionProyecto no se porque desde mi otra cuenta no me dejaba comentarte ni responderte, tengo un error en las cookis, rescibe la res pero no redirecciona y por mas que este todo bien creo, salta error de logueo
@darksecurity
@darksecurity 4 ай бұрын
porque no haces de un formulario
@puntojson
@puntojson Ай бұрын
??
@darksecurity
@darksecurity Ай бұрын
@@puntojson formulario conectado a usa base de datos
@puntojson
@puntojson Ай бұрын
@@darksecurity Perdón pero sigo sin entender, ¿querés obtener las preguntas del formulario desde una base de datos o querés guardar las respuestas en una base de datos al estilo de un google forms?
@darksecurity
@darksecurity Ай бұрын
@@puntojsonsii que guarde la informacion que llegue a una base de datos
2 ай бұрын
se me traba en la parte donde cambio app.get("/", (req, res) => res.sendFile(path.join(__dirname, `/pages/login.html`))) a esto app.get("/", authorization.soloPublico, (req, res) => res.sendFile(path.join(__dirname, `/pages/login.html`))) . la web del proyecto se queda cargando y no responde como debería
2 ай бұрын
en authorization.js funcion revisarCookie comprobamos si existe cookie todo error = falso || verificamos la cookie todo error = falso || if a la verificacion / si todo esta bien es verdadero funcion soloAdmin esta logueado (funcion revisarCookie) si => next no => res.redirect ("/") funcion soloPublic esta logueado (funcion revisarCookie) no => next si => res.redirect ("/admin")
@puntojson
@puntojson Ай бұрын
Cuando estamos trabajando con redirects y algo se queda trabado como en un bucle infinito, probablemente es un problema de referencia circular en un redirect. Ej: Entrás a una página que te lleva a un redirect, la página a la cual te redireccionó tiene también un redirect a la página original o a sí misma. En ese caso tenés redirects infinitos, buscá en la lógica si esto está pasando en tu app! Saludos
버블티로 체감되는 요즘 물가
00:16
진영민yeongmin
Рет қаралды 126 МЛН
Red❤️+Green💚=
00:38
ISSEI / いっせい
Рет қаралды 37 МЛН
Backend de productos (API sencilla) con Node y Mysql
54:58
Punto Json
Рет қаралды 12 М.
The Right Way To Build REST APIs
10:07
Awesome
Рет қаралды 52 М.
TypeScript Programming: Setting up Electron, React, Tailwind and Zustand
4:23:07
Angular Login - NodeJS Express TypeScript Sequelize MySQL y Jwt
3:26:12
Tomas Ruiz Diaz
Рет қаралды 29 М.
Mis Bibliotecas Backend Favoritas de Nodejs en 2024
16:58
Fazt Code
Рет қаралды 26 М.
CURSO DE LOGIN y REGISTRO COMPLETO CON REACT
2:48:55
Vida MRR - Programacion web
Рет қаралды 47 М.
Aider and Claude 3.5: Develop a Full-stack App Without Writing ANY Code!
16:58
Coding the Future With AI
Рет қаралды 18 М.
How Hackers Bypass Kernel Anti Cheat
19:38
Ryscu
Рет қаралды 448 М.
버블티로 체감되는 요즘 물가
00:16
진영민yeongmin
Рет қаралды 126 МЛН