📝 İçerik ve Pazarlama Özellikleri
Platform, içerik ve pazarlama ekiplerinin güvenlik ve performanstan ödün vermeden yüksek esneklik deneyimlemesi için entegre araçlar sunar.
👁️ Canlı CMS Önizlemesi (Next.js Draft Mode)
Mağaza, Strapi'deki Preview sistemi ve Next.js Draft Mode mekanizması ile tam entegre çalışır. Bu özellik, editör ekibinin henüz yayınlanmamış (Taslak / Draft) içerikleri doğrudan gerçek ön yüz şablonunda görüntülemesine olanak tanır.
İş Akışı:
- Başlangıç: İçerik yöneticisi Strapi panelindeki Preview butonuna tıklar.
- Doğrulama: Strapi, kullanıcıyı
REVALIDATE_SECRETiçeren imzalı bir URL ile birlikteapi/preview/route.tsrotasına yönlendirir. - Taslak Modunu Etkinleştirme: Sunucu
node:cryptokullanarak HMAC özetini doğrular ve doğruysa Taslak Modunu (Draft Mode) açar (güvenli oturum çerezi gönderir). - Canlı Oluşturma: Kullanıcı hedef sayfaya yönlendirilir ve içeriğin Taslak sürümünü görüntüler.
REVALIDATE_SECRET ile Birleşik Güvenlik Anahtarı
Yapılandırmayı basitleştirmek ve güvenliği birleştirmek amacıyla hem Strapi canlı önizlemesi hem de ISR Webhook'ları kök dizindeki
.env dosyasında bulunan tek bir REVALIDATE_SECRET ortam değişkenini paylaşır; ayrı bir önizleme anahtarına gerek yoktur.📨 Bülten ve İstenmeyen Posta Önleme (Rate Limiting)
Bülten abonelik sistemi (api/newsletter/route.ts rotası), güçlü SendPulse CRM platformuna doğrudan bağlıdır.
İstek Sınırlama (Rate Limiting) ile Güvenlik
Botların kötüye kullanımını, bülten veritabanının spam ile dolmasını ve üçüncü taraf API istek kotalarının tükenmesini önlemek için bu uç nokta, yerel ve IP tabanlı bir İstek Sınırlayıcı (Rate Limiter) kullanır.
- İzin verilen maksimum istek: 2 istek
- Zaman aralığı: 1 saat (60 * 60 * 1000 milisaniye)
- İzleme mekanizması: Kullanıcının IP adresi
x-forwarded-forbaşlığı aracılığıyla ayıklanır ve sunucu bellek önbelleğinde takip edilir. - Sınır aşılırsa, sunucu
429 Too Many Requestshatası döndürür.
.env (SendPulse Değişkenleri)
bashSENDPULSE_API_ID=your_api_idSENDPULSE_API_SECRET=your_api_secretSENDPULSE_BOOK_ID=your_target_mailing_list_id