- 1

OAuth y OpenID Connect: Autenticación y Autorización Básica
05:01 - 2

¿Qué es la autenticación?
03:55 - 3

Autorización y Control de Acceso Basado en Roles
04:01 - 4

Protocolos Open Authorization y OpenID Connect: Alternativas y Comparación
05:32 - 5

Protección de Endpoints con Autenticación y Autorización Básica
11:14 - 6

Flujo de Open Authorization y Open ID con Discord
07:14
Autenticación Rápida con NextAlt y GitHub en Next.js
Clase 24 de 25 • Curso de OAuth 2.0 y OpenID Connect: Flujos de Autenticación y Casos de Estudio
Contenido del curso
- 11

Implementación de flujos OAuth 2.0 con APIs populares
08:28 - 12

Flujos de Autorización en OAuth 2.0: Conceptos y Funcionamiento
11:55 - 13

Elección del Flujo Oauth 2.0 según Roles del Cliente y Servidor
07:08 - 14

Implementación de Authorization Code Flow con Spotify y React
16:07 - 15

Implementación de Authorization CodeFlow con Proofkit en Twitter API
12:25 - 16

Implementación de Implicit Flow con Twitch en React
07:11 - 17

Implementación de Client Credentials Flow en Discord
05:02 - 18

Implementación de Resource Owner Password Flow con Auth0
08:34 Quiz de Open Authorization 2.0
¿Cómo implementar autenticación con Next.js y NextAuth de forma rápida y sencilla?
Implementar autenticación en una aplicación puede ser un desafío, pero con Next.js y NextAuth (antes conocido como nets out), el proceso se simplifica enormemente. Esta biblioteca ofrece la posibilidad de integrar servicios de autenticación como GitHub mediante el protocolo OAuth, permitiéndonos autenticar usuarios en cuestión de minutos.
¿Qué necesitamos para comenzar?
Antes de adentrarnos en el código, es esencial contar con algunos elementos básicos:
- Asegúrate de tener una aplicación Next.js ya establecida.
- Un perfil en GitHub para obtener el client ID y el client secret necesarios.
- Acceso a las opciones de desarrollador de GitHub para crear una aplicación en su plataforma.
¿Cómo configurar la app de GitHub para la autenticación?
El primer paso para implementar NextAuth es configurar tu aplicación en GitHub para obtener los secretos necesarios para la autenticación.
-
Accede a las opciones de desarrollador en GitHub:
- Visita tu perfil de GitHub.
- Dirígete a las configuraciones de desarrollador y crea una nueva aplicación.
- Proporciona un nombre a la aplicación y la obtención de una URL de callback es crucial. Utiliza
http://localhost:3000/api/auth/callback/githubal probar localmente.
-
Registrar la aplicación:
- Al registrar la aplicación, desactiva la opción de Webhook, ya que no es necesaria para este propósito.
- Una vez completada, copia el client ID y genera un nuevo client secret. Asegúrate de almacenarlos de manera segura en las variables de entorno.
¿Cómo integrar NextAuth en una aplicación Next.js?
Con los datos de la aplicación en GitHub listos, ahora puedes integrar NextAuth en tu aplicación Next.js.
- Crear archivos y configurar NextAuth:
- En la carpeta
apide tu proyecto Next.js, crea una subcarpeta llamadaauth. - En
auth, crea un archivo nombrado[...nextauth].js. Este archivo se encargará de gestionar las rutas dinámicas que NextAuth utiliza.
- En la carpeta
// Importamos las bibliotecas necesarias
import NextAuth from 'next-auth';
import GitHubProvider from 'next-auth/providers/github';
// Exportamos la configuración de NextAuth
export default NextAuth({
providers: [
// Definimos el proveedor de GitHub
GitHubProvider({
clientId: process.env.GITHUB_CLIENT_ID,
clientSecret: process.env.GITHUB_CLIENT_SECRET,
}),
],
});
- Modificar la aplicación principal:
- Envuelve la aplicación en un
SessionProviderimportado desde NextAuth. - Asegúrate de pasar las props adecuadas para gestionar la sesión.
- Envuelve la aplicación en un
import { SessionProvider } from 'next-auth/react';
function MyApp({ Component, pageProps }) {
return (
<SessionProvider session={pageProps.session}>
<Component {...pageProps} />
</SessionProvider>
);
}
export default MyApp;
¿Cómo probar y corregir errores comunes?
-
Realizar pruebas y ajustes:
- Corre la aplicación revisando que la URL del localhost sea correcta (usualmente
3000). - Asegúrate de utilizar HTTP o HTTPS según lo requiera el entorno local para evitar errores de conexión.
- Corre la aplicación revisando que la URL del localhost sea correcta (usualmente
-
Autenticación y Proveedores Múltiples:
- Para autenticar, usa los métodos
signInyuseSessionprovistos por NextAuth. - Si deseas implementar múltiples proveedores, simplemente importa el correspondiente, define su client ID y client secret y ¡listo!
- Para autenticar, usa los métodos
Prueba tu implementación
Ejecuta tu aplicación, prueba la autenticación y, como reto adicional, intenta añadir otro proveedor que no sea GitHub para ver cómo NextAuth facilita este proceso. Recuerda mantener la seguridad de tus tokens y siempre actualiza las dependencias para disfrutar de nuevas funcionalidades y mejoras en seguridad.