Introducción a Auth0

1

Curso Completo de Auth0: Autenticación y Protección de APIs

2

Autenticación y Autorización con Auth0 y Universal Login

3

Implementación y Personalización de Universal Login con Auth0

4

Autenticación Rápida con SDK de Next.js y Auth0

Conexiones sociales

5

Implementación de Login Social con GitHub en Auth0

6

Implementación de Login Social con Twitch en Auth0

7

Creación de Conexión Personalizada con Discord en Auth0

Conexiones sin password

8

Implementación de Login Passwordless con SMS usando Auth0 y Twilio

9

Implementación de Autenticación con Email en Auth0

Protegiendo una API

10

Protección de APIs con Auth0 Management API

11

Configuración de APIs en Auth0 para proteger servidores proxy

12

Protección de Endpoints con Auth0 y Access Tokens

Auth0 SDKs

13

Integración de Auth0 SDK en Aplicaciones React

14

Implementación de SDK en Express para Autenticación con Auth0

15

Autenticación Machine to Machine con Express y Auth0

Administración de usuarios

16

Administración de Usuarios en Auth0: Creación, Bloqueo y Eliminación

17

Gestión de Roles y Permisos en Auth0

Reglas y Acciones en Auth0

18

Reglas y Acciones en Auth0: Implementación y Usos Prácticos

19

Implementación de Gravatar en Auth0 para Perfiles con Alias de Gmail

20

Implementación de Acciones y Reglas en Auth0

Multifactor Authentication

21

Implementación de Multi-Factor Authentication con Auth0

22

Autenticación Web con Llaves de Seguridad Fido

23

Implementación de One-Time Password en Auth0

Casos en producción

24

Monitoreo y Seguridad en Auth0: Logs y Herramientas Externas

25

Integración de Firebase Authentication y Auth0 en Next.js

26

Implementación de Firebase Authentication con Auth0 y Firebase Admin

27

Configuración de Reglas de Seguridad en Firebase Firestore

28

Implementación de Auth0 en Entornos de Producción

No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Autenticación Rápida con SDK de Next.js y Auth0

4/28
Recursos

¿Cómo configurar una autenticación con Auth0 en Next.js?

La integración de autenticación en aplicaciones web puede ser un proceso complejo, pero con el SDK de Next.js de Auth0, es posible lograrlo con pocas líneas de código. Aquí exploraremos paso a paso cómo añadir una capa de autenticación utilizando Auth0 y otras herramientas como Firebase y Unsplash.

¿Cuáles son los requisitos iniciales para el proyecto?

Antes de comenzar la implementación de la autenticación, es fundamental preparar algunas configuraciones iniciales en Firebase y Unsplash:

  1. Cuenta de Firebase:

    • Crea un nuevo proyecto y una aplicación web.
    • Enfócate en "Project Settings" para copiar la configuración de Firebase.
    • Crea una base de datos en Firestore en modo producción y ajusta las reglas a if true para abrir inicialmente la colección al público.
  2. Cuenta de Unsplash:

    • Crea una nueva aplicación en tu cuenta de desarrollador.
    • Asegúrate de copiar la clave de acceso proporcionada.

Con ambas configuraciones, copia la información en las variables de entorno de tu proyecto.

¿Cómo preparar las variables de entorno?

Procede con la preparación de variables de entorno para facilitar el trabajo con varias APIs. A continuación, el proceso detallado:

  1. Duplicar y modificar archivos:

    • Copia el archivo .env.local.example y retira la extensión .example.
    • Incluye en el archivo resultante la clave de acceso de Unsplash y la configuración de Firebase.
  2. Ejecutar scripts de preparación:

    • Utiliza el script jar-seed para enviar una colección de películas de prueba a Firestore, lo cual te permitirá probar la autenticación con datos previamente cargados.

¿Cómo implementar la autenticación con el SDK de Auth0?

La configuración en Auth0 te permitirá proteger rutas y acceder a datos de usuario fácilmente:

  1. Crear una aplicación en Auth0:

    • Ve al panel de control de Auth0 y crea una nueva aplicación asegurándote de que sea del tipo "Regular Web Application".
    • Copia el Domain, Client ID, y Client Secret desde la pestaña de Settings.
  2. Actualizar variables de entorno:

    • Asegúrate de incluir el protocolo HTTPS al dominio en las variables de entorno.
    • Genera una cadena de texto aleatoria de 32 bytes para el Auth0 Secret.

¿Cómo integrar el SDK en Next.js?

  1. Instalación del SDK de Auth0:

    • Instala el paquete a través de npm:
      npm install @auth0/nextjs-auth0
      
  2. Configurar rutas de autenticación:

    • Dentro de la carpeta api, crea una subcarpeta auth y un archivo con el nombre [...auth0].js:
      import { handleAuth } from '@auth0/nextjs-auth0';
      export default handleAuth();
      
    • Esta configuración habilita todas las rutas necesarias para login, logout, y callback.
  3. Proteger componentes e implementar proveedor de usuario:

    • En el archivo _app.js, importa el UserProvider desde @auth0/nextjs-auth0/client y asegúrate de que esté presente en toda la aplicación:
      import { UserProvider } from '@auth0/nextjs-auth0/client';
      // Usa UserProvider como un componente envolvente
      
  4. Proteger la página principal:

    • Implementa el Higher-Order Component (HOC) withPageAuthRequired desde el SDK para proteger la página de índice:
      export const getServerSideProps = withPageAuthRequired();
      
  5. Acceder a datos de usuario:

    • Usa el hook useUser para obtener y mostrar información de usuario como nombre o avatar:
      import { useUser } from '@auth0/nextjs-auth0/client';
      const { user } = useUser();
      

Con esta estructura, ahora puedes iniciar tu servidor y verificar cómo la autenticación se aplica a tu aplicación en localhost:3000. Al acceder, se te solicitará iniciar sesión, brindando una forma segura y eficiente de gestionar usuarios en tu aplicación de Next.js.

Desafío adicional

El SDK de Auth0 no es la única opción para implementar la autenticación. Explora la librería Auth.js, conocida también como Next.auth, y experimenta diferencias y similitudes en la implementación para enriquecer tu proyecto.

A medida que avanzas, recuerda que la práctica es clave para dominar la integración de autenticaciones. Estás en el camino correcto, ¡sigue aprendiendo!

Aportes 8

Preguntas 2

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Acá mi aporte

# PROXY SERVER
PROXY_SERVER_PORT=
NEXT_PUBLIC_PROXY_SERVER_URL=

# UNSPLASH
UNSPLASH_ACCESS_KEY=

# FIREBASE
NEXT_PUBLIC_API_KEY=
NEXT_PUBLIC_AUTH_DOMAIN=
NEXT_PUBLIC_PROJECT_ID=
NEXT_PUBLIC_STORAGE BUCKET=
NEXT_PUBLIC_MESSAGING_SENDER_ID=
NEXT_PUBLIC_APP_ID=
SEED_USER_ID=

# AUTHO
AUTHO_SECRET=
AUTHO_BASE_URL=
AUTHO_ISSUER_BASE_URL=
AUTHO_CLIENT_ID=
AUTHO_CLIENT_SECRET=

Comando para generar el AUTHO_SECRET

node -e "console.log(crypto.randomBytes(32).toString('hex'))"

Comando para instalar Auth0 para NextJs

npm install @auth0/nextjs-auth0

node -e “console.log(crypto.randomBytes(32).toString(‘hex’))”

OJO, para que esto funciono deben descargar la version 2.2.1 de @auth0/nextjs-auth0
Tantas dependencias hacen que el interes por el curso disminuya. Yo quiero aprender a usar Auth0, no a hacer requests a unsplash
Firebase Web Apps ahora requieren la contratacion de un plan, es necesario actualizar el curso
Esta es la url del repositorio: <https://github.com/glrodasz/platzi-practico-auth0/tree/develop>

excelente clase, no domino next, pero con el repositorio y el video se logra sin problemas.

Si estan trabajando con la version de Next 13.4 con app directory deben hacer unos pequeños cambios para que funcione correctamente https://www.npmjs.com/package/@auth0/nextjs-auth0#app-router