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

Поделиться
HTML-код
  • Опубликовано: 14 июл 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

Комментарии • 27

  • @bluuweb
    @bluuweb  9 дней назад +2

    Hola, video 2 ya listo! 👉🏽 Auth.js + OAuth: ruclips.net/video/_-dqdMBh24k/видео.html

  • @cesarcoloradocaceres842
    @cesarcoloradocaceres842 10 дней назад +1

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

    • @bluuweb
      @bluuweb  9 дней назад +1

      Gracias, saludos!

  • @michelmarroche7927
    @michelmarroche7927 10 дней назад +1

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

    • @bluuweb
      @bluuweb  9 дней назад

      Muchas gracias! Saludos Michel

  • @raul1533-kx9de
    @raul1533-kx9de 2 дня назад +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  2 дня назад +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 12 дней назад +2

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

    • @bluuweb
      @bluuweb  12 дней назад +1

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

  • @jesusquintanaesquiliche9808
    @jesusquintanaesquiliche9808 12 дней назад +1

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

    • @bluuweb
      @bluuweb  12 дней назад +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 12 дней назад +1

    Me salvaste la vida con este tutorial, sos un crackkkkkkkkk

    • @bluuweb
      @bluuweb  12 дней назад +1

      Grande Franco! Saludos

  • @xansiety
    @xansiety 12 дней назад +1

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

    • @bluuweb
      @bluuweb  12 дней назад +2

      Excelente !!! 🎉 un gran abrazo !!

  • @juanjosecollantes8188
    @juanjosecollantes8188 9 дней назад +1

    Buenisimo!

    • @bluuweb
      @bluuweb  6 дней назад

      Gracias! Nos vemos pronto 🥳

  • @colommbiano
    @colommbiano 11 дней назад +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  11 дней назад +1

      Super, lo vamos a estudiar para incluir. Saludos !

  • @santiagosemhan8722
    @santiagosemhan8722 8 дней назад +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  6 дней назад +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 11 дней назад +1

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

    • @bluuweb
      @bluuweb  10 дней назад +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 10 дней назад +1

      @@bluuweb Gracias!

  • @DerzzAle
    @DerzzAle 3 дня назад +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  2 дня назад +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 6 часов назад

    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?