- 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
Implementación de Authorization Code Flow con Spotify y React
Clase 14 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 Authorization Code Flow en Spotify?
La implementación del Authorization Code Flow con Spotify es fundamental para permitir que aplicaciones web accedan de manera segura a los recursos de un usuario. Este flujo de autorización es ampliamente utilizado debido a su seguridad y versatilidad en diferentes servicios. Vamos a explorar los pasos necesarios para configurar y utilizar este flujo en Spotify.
¿Cómo creamos y configuramos una aplicación en Spotify?
El primer paso para implementar este flujo es crear y configurar una aplicación en el dashboard de desarrolladores de Spotify. Aquí están los pasos básicos para lograrlo:
- Autenticarse: Inicia sesión con tu cuenta de Spotify para acceder al dashboard.
- Crear una aplicación: Dentro del dashboard, crea una nueva "App", que Spotify denomina aplicaciones de manera amigable.
- Registrar cliente: Asigna un nombre y una descripción a tu aplicación, acepta los términos y presiona "crear".
- Obtener credenciales: Copia tu
Client IDyClient Secret, esenciales para autenticar tu aplicación. No los compartas públicamente.
¿Cómo configurar y manejar un proyecto que utiliza Next.js y React?
El proyecto se beneficia significativamente del uso de Next.js, un marco React que permite gestionar APIs del lado del servidor:
- Configurar el entorno: Instala y configura un proyecto React con Next.js.
- Variables de entorno: Guarda tu
Client ID,Client Secrety la URL de redirección en tus variables de entorno. - Crear un botón de conexión: En el archivo
index.js, agrega un botón que redirija a la API de inicio de sesión (api/login).
¿Cómo realizar un Request Authorization?
Para solicitar autorización al servidor, deben configurarse ciertos parámetros:
- Scopes necesarios: Define los scopes necesarios para el acceso a los endpoints específicos de Spotify:
read_privateread_emailplaylist_read_private
- Parámetros del query: El query debe incluir:
response_typecomocodeclient ID- Scopes separados por espacios
redirect_uride la aplicación
- Construcción del query string: Usa
query-stringpara transformar estos parámetros en un query string formateado correctamente.
const queryString = require('query-string');
let query = {
response_type: 'code',
client_id: process.env.SPOTIFY_CLIENT_ID,
scope: scopes.join(' '),
redirect_uri: process.env.REDIRECT_URI
};
const authURL = `https://accounts.spotify.com/authorize?${queryString.stringify(query)}`;
¿Cómo intercambiar un código por un token de acceso?
Una vez que se obtiene el código de autorización del servidor, el siguiente paso es obtener un token de acceso a través del backend, necesario para consumir la API de Spotify:
- Realizar el fetch: Usa
fetchpara enviar un POST request a la URL del token de Spotify. - Headers necesarios: Define
Content-TypeyAuthorizationusando Basic Auth conClient IDyClient Secret. - Parámetros del cuerpo: Envía el
code,redirect_uri, y tipo de grantauthorization_codeen el cuerpo de la solicitud.
const response = await fetch('https://accounts.spotify.com/api/token', {
method: 'POST',
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
'Authorization': `Basic ${Buffer.from(`${process.env.SPOTIFY_CLIENT_ID}:${process.env.SPOTIFY_CLIENT_SECRET}`).toString('base64')}`
},
body: queryString.stringify({
code: codeFromRequest,
redirect_uri: process.env.REDIRECT_URI,
grant_type: 'authorization_code'
})
});
¿Cómo manejar y almacenar el token de acceso?
Finalmente, para interactuar con la API de Spotify, el token de acceso debe almacenarse de forma segura y transmitirse al cliente de manera efectiva, utilizando cookies HTTP-only para mayor seguridad:
- Creación de la cookie: Guarda el
access_tokendentro de una cookie HTTP-only. - Consumo del token: Usa el token en la aplicación cliente para acceder a recursos protegidos, como el perfil del usuario o las listas de reproducción.
Explorar estos pasos y asegurarse de comprender cada parte del flujo de OAuth puede parecer desafiante al principio, pero con la práctica, se convierte en un proceso más sencillo. ¡Anímate a probar este flujo con otros servicios y seguir ampliando tus habilidades de integración OAuth!