Configuración e Integración de NextAuth para Autenticación en Next.js
Clase 4 de 11 • Curso de Next.js: Autenticación
Contenido del curso
Clase 4 de 11 • Curso de Next.js: Autenticación
Contenido del curso
Miguel Hernández
Franyer Verjel
Luis Alfredo Quispe Villca
Francisco Ponce
Zaidibeth Ramos
Andrés Felipe Carreño
Andres Roberto Coello Goyes
Rex Guzmán
Jonathan 🦑 Alvarez
Mauricio Kevin Sulca Chavez
Luis Alfredo Quispe Villca
Jonathan Antonio González
Jhoan Stiven Zamora Caicedo
Ponciano Guevara Lozano
Jonathan 🦑 Alvarez
Elías Muñiz
Carlos Restrepo
Eduardo Pech
En esta clase descubri que en el objeto crendentials de la función authorize tiene una clave llamada csrfToken, en este video explican como funcionan. En un futuro puede ser útil saberlo.
Hola, ¡qué gran curso!, tengo una duda, ¿la página de SignIn se puede personalizar? ¿Se podría desde un modal tener ese formulario de autenticación?
Si se puede:
Recientemente NexthAuth hizo un upgrade a la versión 4.0, donde hubo algunos cambios en la manera de importar algunos providers.
Hasta el momento, jugando un poco con la documentación y con el código realicé lo siguiente:
import NextAuth from 'next-auth' import type { NextAuthOptions } from 'next-auth' import CredentialsProvider from 'next-auth/providers/credentials' const options: NextAuthOptions = { debug: true, session: {}, jwt: {}, providers: [ CredentialsProvider({ name: 'Pomodoro', credentials: { // username: { // label: 'Username', // type: 'text', // placeholder: 'mail@example.com', // }, password: { label: 'Password', type: 'password', placeholder: '****************', }, }, async authorize(credentials) { const res = await fetch(`${process.env.NEXTAUTH_URL}/api/auth/platzi`, { method: 'POST', body: JSON.stringify(credentials), headers: { 'Content-type': 'application/json' }, }) const user = await res.json() if (res.ok && user) { return user } return null }, }), ], } export default NextAuth(options)
Sin embargo, no ejecuta me ejecuta el redirect a home. ¿A alguien le ha pasado algo similar?
Para crear el secret necesario despues de los providers, pueden llamar en su terminal de linux o de wsl el siguiente comando
openssl rand -base64 32
Y utilizar la key obtenida para el NEXTAUTH_SECRET Asi evitan el warning de no_secret
Muchas gracias por el aporte.
Al intentar instalar la dependecia me dice que requiere NODE v 16.13.0 Asi que solo actualizen node con nvm install 16.13.0
Si quiero conectarme a una API Rest construida con express se puede hacer la petición en credentialAuth?
Sii exacto, sería el lugar ideal :)
Hola quisiera que me ayuden si despues del logeo quisiera que me redirija a otro path que en vez del "/" en donde se configura eso o codae ?
Puedes hacerlo de la siguiente manera en el archivo [...nextauth].js
const nextAuthOptions = (req, res) => { return { providers: [...], callbacks: { jwt: async ({ token, user, account, profile, isNewUser }) => { // Logica jwt custom return Promise.resolve(token) }, session: async ({ session, token }) => { // Logica session custom return Promise.resolve(session) }, async redirect({ url, baseUrl }) { return `${baseUrl}/ruta_super_segura` }, }, } }
Para más info https://next-auth.js.org/configuration/callbacks#redirect-callback
Dark-mode al theme please! :p
En estos casos cuando se adelanta a las clases profesor, si que sería más valioso tener el repo en los recursos...
Tengo una duda, y no encuentro información en la documentación y tampoco se explica aquí.
En un proyecto montado en vercel, con dominio personalizado, (propio). Los proveedores Facebook y Google, no reconocen el dominio personalizado, el comprado, solo reconocen el que proporciona vercel, y además el generado por el deploy, el que dentro del dominio incluye un hash.
Entonces me puedo registrar con ambas (Facebook y Google) pero me rediregen al dominio antes mencionado, el que tiene el hash, entonces estoy registrado y a la vez, no. por que en el dominio no estoy, pero si para faceebook o google.
¿Cómo puedo hacer que reconozcan mi dominio personalizado, el que fue comprado, y no el generado automáticamente en cada deploy?
Hola Ponciano!
Me suena a que el callback url que le pasas a Facebook/ Google no es el valor que tienes. Te estás asegurando que la variable de entorno NEXTAUTH_URL sea la correcta en los entornos de producción y preview? 🤔
next-auth/client es ahora next-auth/react https://next-auth.js.org/getting-started/upgrade-v4#next-authreact
Hay alguna forma de customizar la vista del login? me refiero a la UI? color del botón, espacio entre los inputs, si se puede agregar un logo encima de los inputs?
1.- Install -> yarn add next-auth 2.- Add to .env -> NEXTAUTH_URL=