Next Auth V5 - Credentials (Email y Password), JWT, Roles y verificación de email

Sdílet
Vložit
  • čas přidán 14. 07. 2024
  • En este tutorial veremos como implementar Next Auth en su versión 5 en un proyecto de Next.js v.14. Aplicaremos Credentials para autenticar usuarios con email y contraseña, almacenarlos en bases de datos Postgres y gestionando roles y rutas protegidas. Utilizaremos Prisma ORM y shadcn para los componentes de React con TailwindCSS.
    Cursos en UDEMY:
    🧨 HTML + CSS + Bootstrap 5 + JS: bit.ly/3iyMBh3
    🧨 React + Next 14 + Firebase: bit.ly/3JCSsht
    🧨 Vue 3 + Firebase: bit.ly/3IwyHGJ
    🧨 HTML y CSS (gratis): bit.ly/3PM4x5U
    ⭐ Video #02: Auth.js + OAuth (Google y Github): • Next Auth V5 - OAuth (...
    ⭐ Código github: github.com/bluuweb/example-ne...
    ⭐ Website: bluuweb.dev
    ⭐ Discord: bit.ly/3lpz7J2
    Contenido:
    00:00:00 Introducción
    00:01:44 Next 14 tutorial
    00:14:59 Login Form
    00:29:28 Auth.js instalación
    00:35:32 Prisma ORM
    00:48:56 Credentials Auth.js
    01:08:48 Prisma Schema
    01:26:29 Register Form
    01:36:21 Roles de usuario
    01:43:03 Middlewares rutas protegidas
    01:46:47 Verificación de email
    #nextjs14 #prisma #reactjs
    Redes Sociales:
    💩 / bluuweb
    💩 / bluuweb_youtube
    💩 / bluuweb
    💩 / bluuweb
    💩 Regala un Cafecito para bluuweb: www.paypal.me/bluuweb
    Mi Setup:
    ⭐️ Teclado Mecánico: amzn.to/3Ns6fdK
    ⭐️ Audífonos: amzn.to/3pwrzqt
    ⭐️ Micrófono: amzn.to/3JH4tV7
    ⭐️ Monitor: amzn.to/3NTt8Iu
    ⭐️ Procesador: amzn.to/3raD4EC
    ⭐️ Tarjeta de Video: amzn.to/437t78b

Komentáře • 27

  • @bluuweb
    @bluuweb  Před 10 dny +2

    Hola, video 2 ya listo! 👉🏽 Auth.js + OAuth: czcams.com/video/_-dqdMBh24k/video.html

  • @cesarcoloradocaceres842
    @cesarcoloradocaceres842 Před 10 dny +1

    MUCHAS MILES DE GRACIAS!
    Justo andaba buscando algo similar.
    EXCELENTE TODO CLARO!
    Te ganaste un fiel seguidor.

  • @michelmarroche7927
    @michelmarroche7927 Před 10 dny +1

    Muy bueno, impresionante .. lo que explicas y como lo haces .. Abrazo

    • @bluuweb
      @bluuweb  Před 10 dny

      Muchas gracias! Saludos Michel

  • @raul1533-kx9de
    @raul1533-kx9de Před 3 dny +2

    Porfin encuentro uno que funciona sin bugs la ptm XD
    y lo mejor de todo es que esta en español, muchas gracias, aprendi bastante

    • @bluuweb
      @bluuweb  Před 3 dny +1

      Buena pregunta, lo que pasa que onboarding@resend.dev es un email para realizar pruebas, y esas pruebas en estricto rigor solo las debes hacer a tu email de cuenta registrada. Espero orientar. Saludos

  • @CesarICAO
    @CesarICAO Před 12 dny +2

    Oh tio blu, regresaste !!! 🎉 Se te extrañó mucho.

    • @bluuweb
      @bluuweb  Před 12 dny +1

      Siii poco a poco subiendo videos y volviendo al ritmo 🙌🏾 saludos

  • @jesusquintanaesquiliche9808

    Que tutorial más intenso. ¿Caundi te veremos en directo?

    • @bluuweb
      @bluuweb  Před 12 dny +1

      Jajajaja estudie mucho para hacerlo 🤓
      Estoy medio complicado para los directos, StarLink no tiene mucho ancho de banda en subida, así que haré algunas pruebas y les comento. Saludos Jesus!!

  • @Franco123787
    @Franco123787 Před 12 dny +1

    Me salvaste la vida con este tutorial, sos un crackkkkkkkkk

    • @bluuweb
      @bluuweb  Před 12 dny +1

      Grande Franco! Saludos

  • @xansiety
    @xansiety Před 12 dny +1

    Grande bluuu! como siempre justo andaba buscando esto!!1

    • @bluuweb
      @bluuweb  Před 12 dny +2

      Excelente !!! 🎉 un gran abrazo !!

  • @juanjosecollantes8188
    @juanjosecollantes8188 Před 9 dny +1

    Buenisimo!

    • @bluuweb
      @bluuweb  Před 7 dny

      Gracias! Nos vemos pronto 🥳

  • @colommbiano
    @colommbiano Před 12 dny +1

    Está excelente, muchas gracias, maestro. Sería genial si pudieras incluir en otro video explicándonos cómo recuperar la contraseña utilizando esta versión de Auth.js. ¡Gracias, maestro!

    • @bluuweb
      @bluuweb  Před 12 dny +1

      Super, lo vamos a estudiar para incluir. Saludos !

  • @santiagosemhan8722
    @santiagosemhan8722 Před 8 dny +1

    Estas armando el objeto NextAuth 2 veces, una en auth.ts y otra en el middleware. Creo que solamente habría que importar el auth de auth.ts

    • @bluuweb
      @bluuweb  Před 7 dny +1

      Hola, al parecer si pero está sacado todo de la documentación oficial: authjs.dev/guides/edge-compatibility#split-configauthjs.dev/guides/edge-compatibility#split-config
      Cualquier cosa me avisas.
      Saludos!

  • @darksitopx
    @darksitopx Před 11 dny +1

    Bluuweb que pasaria si quiero que el token que genero cuando ingreso expire en un determinado tiempo.

    • @bluuweb
      @bluuweb  Před 11 dny +2

      Hola aquí la documentación oficial de lo que preguntas: authjs.dev/concepts/session-strategies
      Aunque así debería ser (me apoyé en la IA), espero ayudar. Saludos!
      export default NextAuth({
      // ... otras opciones de configuración
      session: {
      strategy: "jwt",
      maxAge: 3600, // Tiempo en segundos (1 hora en este ejemplo)
      },
      // ... más opciones de configuración
      })
      Es importante tener en cuenta que cuando usas la estrategia JWT (JSON Web Token), Auth.js utiliza tokens de corta duración por defecto para mejorar la seguridad . Esto significa que el token se renovará automáticamente si el usuario sigue activo, pero si no hay actividad durante el período especificado en maxAge, el token expirará y el usuario tendrá que iniciar sesión nuevamente .
      Si necesitas un control más preciso sobre la expiración del token, puedes utilizar los callbacks jwt y session para personalizar aún más este comportamiento . Por ejemplo:
      callbacks: {
      jwt({ token, user }) {
      if (user) {
      token.customExpiration = Date.now() + 3600 * 1000; // 1 hora desde ahora
      }
      return token;
      },
      session({ session, token }) {
      session.customExpiration = token.customExpiration;
      return session;
      },
      },
      Este enfoque te permite establecer una fecha de expiración personalizada para cada token.
      Recuerda que configurar un tiempo de expiración demasiado largo puede representar un riesgo de seguridad, mientras que uno demasiado corto podría afectar negativamente la experiencia del usuario . Es importante encontrar un equilibrio adecuado para tu aplicación específica.

    • @darksitopx
      @darksitopx Před 11 dny +1

      @@bluuweb Gracias!

  • @DerzzAle
    @DerzzAle Před 3 dny +1

    Me estoy confundiendo, hace poco comencé con NextJS. AuthJs v5 es la continuación de NextAuth v4, o son paquetes completamente independientes ?

    • @bluuweb
      @bluuweb  Před 3 dny +2

      Hola, aquí tienes todos los detalles de la migración de v4 a v5: authjs.dev/getting-started/migrating-to-v5
      espero ayudar. Saludos

  • @im_jostincII
    @im_jostincII Před 11 hodinami

    Hola, tengo este error:
    Module '"next-auth"' has no exported member 'NextAuthConfig'. Did you mean to use 'import NextAuthConfig from "next-auth"' instead?ts(2614)
    pueden ayudarme?