Next.js
Management
Yönetim paneli için cookie tabanlı kimlik doğrulama
Başlatma
import { Management } from '@vinenastudio/recurr-nextjs'
export const management = new Management({
username: process.env.ADMIN_USER!,
password: process.env.ADMIN_PASS!,
})management nesnesi createBillingApp'e zorunlu olarak geçirilir:
export const billingApp = createBillingApp({ ..., management })Cookie: bp_mgmt
| Özellik | Değer |
|---|---|
| Format | username.expireTimestamp.HMAC-SHA256(username.expireTimestamp, password) |
| Flags | HttpOnly; SameSite=Strict; Path=/ |
| TTL | 8 saat |
| İmzalama | Node.js built-in crypto — harici bağımlılık yok |
| Doğrulama | timingSafeEqual() — timing saldırılarına karşı korumalı |
Auth Akışı
GET /billing/management
→ BillingPortalPage (server component)
→ next/headers ile cookie okunur
→ cookie yok veya geçersiz → <LoginPage /> render edilir
→ geçerli cookie → <ManagementPage /> render edilir
POST /api/billing/management-login
{ username, password }
→ 204 + Set-Cookie: bp_mgmt=... (başarılı)
→ 401 (hatalı kimlik bilgisi)
POST /api/billing/management-logout
→ 204 + bp_mgmt cookie temizlenirmanagement nesnesi createBillingApp için zorunludur. /api/billing/subscribers ve /api/billing/payments endpoint'leri bu nesne ile korunur.