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:
- Obtén el ID de Cliente y el Secreto desde la Configuración de Desarrollador de GitHub.
- Agrégalos a
.env. - 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
- Crea un Producto en el Panel de Stripe (por ejemplo, "Plan Pro").
- Obtén el ID de Precio (comienza con
price_...). - Actualiza la constante
PRICE_IDen 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.
Seguridad Crítica
Ejecutar webhooks de pago sin STRIPE_WEBHOOK_SECRET hace que tu sistema sea vulnerable a ataques de "confirmación de pago falsa".
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:
- URL de Desarrollo:
http://localhost:3001/api/stripe/webhook(o dirección de prueba local con Stripe CLI). - URL de Producción:
https://rapidcore.io/api/stripe/webhook(Tu dominio real).
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.