recurr.
Next.js

Management

Yönetim paneli için cookie tabanlı kimlik doğrulama

Başlatma

lib/subscriptions.ts
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 })
ÖzellikDeğer
Formatusername.expireTimestamp.HMAC-SHA256(username.expireTimestamp, password)
FlagsHttpOnly; SameSite=Strict; Path=/
TTL8 saat
İmzalamaNode.js built-in crypto — harici bağımlılık yok
DoğrulamatimingSafeEqual() — 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 temizlenir

management nesnesi createBillingApp için zorunludur. /api/billing/subscribers ve /api/billing/payments endpoint'leri bu nesne ile korunur.

On this page