Contáctanos
Webflow Premium Partner Ehab Fayez
Volver a Agent Skills
Seguridad y Calidad

OAuth2 Authorization Flows

Implementa flujos de código de autorización, PKCE y credenciales de cliente OAuth2 con la biblioteca oauth4webapi.

Claude Code Cursor Copilot

Descripción General

oauth4webapi es una biblioteca moderna y ligera de OAuth 2.0 y OpenID Connect que usa las Web APIs (Fetch, Web Crypto) y sigue las mejores prácticas de seguridad más recientes. Soporta flujos de Código de Autorización con PKCE, Credenciales de Cliente, Autorización de Dispositivo y Refresh de Token, todos construidos sobre implementaciones conformes con estándares.

A diferencia de bibliotecas OAuth antiguas, oauth4webapi es agnóstica al runtime, funcionando en Node.js, Deno, Cloudflare Workers y navegadores. Implementa las recomendaciones más recientes de Mejor Práctica de Seguridad Actual (BCP) de OAuth 2.0, incluyendo PKCE obligatorio, identificación de emisor y DPoP. La biblioteca evita características legacy y patrones inseguros por diseño.

La biblioteca proporciona bloques de construcción de bajo nivel en lugar de abstracciones opinionadas, dando a los desarrolladores control total sobre el flujo OAuth. Maneja parsing de documentos de descubrimiento, solicitudes de endpoint de token, introspección de tokens y llamadas al endpoint userinfo. Para OpenID Connect, valida ID tokens, maneja verificación de nonce y soporta todos los claims estándar.

¿Para Quién Es?

  • Implementar flujo de Código de Autorización OAuth2 con PKCE
  • Configurar flujo de Credenciales de Cliente para autenticación servicio a servicio
  • Construir inicio de sesión OpenID Connect con validación de ID token
  • Manejar refresh de token con detección de rotación

Instalación

Configurar Claude Code
npm install oauth4webapi

Configuración

import * as oauth from "oauth4webapi"

const issuer = new URL("https://accounts.google.com")
const as = await oauth.discoveryRequest(issuer)
  .then((res) => oauth.processDiscoveryResponse(issuer, res))

const client = { client_id: "your-client-id" }
const codeVerifier = oauth.generateRandomCodeVerifier()
const codeChallenge = await oauth.calculatePKCECodeChallenge(codeVerifier)