Logo
Comenzar

Pagos y Autenticación

Monetización y Gestión de Usuarios.

Autenticación (Auth.js)

RapidCore utiliza Auth.js v5 (anteriormente NextAuth). La configuración se encuentra en packages/core/src/auth.ts.

Agregar un Proveedor

Para agregar inicio de sesión con GitHub, por ejemplo:

  1. Obtén el ID de Cliente y el Secreto desde la Configuración de Desarrollador de GitHub.
  2. Agrégalos a .env.
  3. Actualiza auth.ts:
import GitHub from "next-auth/providers/github";

export const { handlers, auth, signIn, signOut } = NextAuth({
  providers: [
      GitHub({ clientId: process.env.GITHUB_ID, clientSecret: process.env.GITHUB_SECRET }),
      // ... proveedores existentes
  ],
});

Pagos (Stripe)

El flujo de pago se implementa en apps/web-starter/src/app/api/stripe/checkout/route.ts.

Configuración de Productos

  1. Crea un Producto en el Panel de Stripe (por ejemplo, "Plan Pro").
  2. Obtén el ID de Precio (comienza con price_...).
  3. Actualiza la constante PRICE_ID en tu ruta de pago o pásalo dinámicamente desde el frontend.

Webhooks

Usamos un manejador de webhooks genérico para procesar checkout.session.completed. La lógica reside en @rapidcore/core/src/stripe.ts (esqueleto). Necesitas habilitar el webhook en el Panel de Stripe apuntando a:

https://your-domain.com/api/stripe/webhook

No olvides añadir la variable STRIPE_WEBHOOK_SECRET a tus variables de entorno.

Seguridad y Verificación de Webhooks

La variable STRIPE_WEBHOOK_SECRET es vital para garantizar la seguridad de los procesos de pago. Esta clave se utiliza para la verificación de firmas con el fin de confirmar que la solicitud entrante procede realmente de Stripe.

Paso a Producción y Ajustes de URL

No olvides actualizar la URL del Webhook en el Panel de Control de Stripe cuando pases a un entorno de producción:

  1. URL de Desarrollo: http://localhost:3001/api/stripe/webhook (o dirección de prueba local con Stripe CLI).
  2. URL de Producción: https://rapidcore.io/api/stripe/webhook (Tu dominio real).
Consejo Senior

Debes configurar las direcciones de los Webhooks de Stripe por separado tanto para el "Modo de Prueba" como para el "Modo en Vivo". Se genera una clave WEBHOOK_SECRET diferente para cada modo.