Autenticación y Protección de Páginas con NextAuth y Next.js
Clase 8 de 11 • Curso de Next.js: Autenticación
Contenido del curso
Clase 8 de 11 • Curso de Next.js: Autenticación
Contenido del curso
Alejandro Brand
Sergio Andrés Majé Franco
Sergio Andrés Majé Franco
Pablo Nicolás Alonso
Menyin Chang
Orlando Manuel Mendoza Vargas
Julio Bastidas
Alejandro Iscop
Actualización:
La documentacion de Next auth recomienda usar getServerSession() en lugar de getSession para hacer menos peticiones a la API y aumentar el rendimiento significativamente.
Se usaría así en la ruta que quieras proteger:
import { getServerSession } from "next-auth/next" const Page = ({session}) => { // .... } export default Page export async function getServerSideProps(context) { const session = await getServerSession(context.req, context.res, authOptions) if (!session) { return { redirect: { destination: '/', // aquí lo llevas si no está logeado permanent: false, }, } } return { props: { session, }, } }
La documentación brinda tres formas de proteger las rutas con NextAuth:
useSessionunstable_getServerSessionActualmente, getSession no está funcionando muy bien en server side, así que la documentación recomienda usar por ahora unstable_getServerSession en su lugar
Existe una diferente de manejar las rutas protegidas con NextAuth y en su documentación se encuentra claramente explicado y ejemplificado
El código en este video debería ser el mismo solo que cambia el import de next-auth/client a next-auth/react.
También en mi caso importar el getServerSideProps desde next me da error así que borre la línea y funciona todo bien.
Seguro te daba error por la "g" debe ir en mayúscula
la manera correcta de importarla sería: GetServerSideProps
creo que estaba poniendo "nex-auth/client" debido a que la versión que se estaba usando en el curso de next-auth es la versión 3, y actualmente desde hace poco meses ya está vigente la versión 4
yo tengo una gran duda, si yo tengo mi backend fuera de nestjs para registro, login, y demás procesos como por ejemplo comprar, como hago para hacer la autenticación hacia ese otro backend y como hago para ejecutar preticiones api rest enviando el token, con react lo se hacer, pero me queda esta duda de como hacerlo con nextjs?
getSession() client Side: Yes Server Side: Yes useSession() Client Side: Yes Server Side: No