Hayrettin DalYönetimTR|EN
blog/Vaka Çalışması

Kişisel Blog & CMS: içerik yönetimi ve BFF kimlik doğrulama

Next.js ve .NET 8 ile geliştirdiğim TR/EN yayın platformunda içerik yönetimi, rol sınırları ve httpOnly cookie kullanan BFF kararının kısa incelemesi.

Problem

Blog yazılarını, projeleri ve hizmet içeriklerini her güncellemede kod değiştirmeden yönetmek istedim. Türkçe ve İngilizce içerikleri aynı platformda sunarken ziyaretçi, okuyucu ve yönetici yetkilerini de ayırmam gerekiyordu.

Kişisel katkım

Next.js ve TypeScript arayüzünü .NET 8 Web API, Entity Framework Core ve SQLite ile birleştirdim. Rol bazlı CMS, yorum moderasyonu ve TR/EN içerik akışlarını geliştirdim. Proje türü, erişim durumu, iki dilde teknik karar ve vaka çalışması bağlantısını yönetim panelinden düzenlenebilir alanlar olarak ele aldım.

Mimari

Şema, giriş ve korumalı içerik yönetimi akışını özetler.

Tarayıcı
  → Next.js BFF / sunucu işlemleri
    → .NET 8 API: kimlik ve rol kontrolü
      → EF Core → SQLite

Giriş yanıtı → BFF → httpOnly JWT cookie
Korumalı istek → BFF → API'ye Bearer token

JWT tarayıcı JavaScript'ine açılmaz. Yönetici yetkisinin son kontrolü API'dedir; arayüzde düğme gizlemek yetkilendirme yerine geçmez.

Bir karar ve karşılığı

JWT'yi JavaScript ile okunabilen depolama yerine httpOnly cookie'de tutup API'ye sunucudan ileten BFF yaklaşımını seçtim. Bu, istemci kodunun token'ı okumasını engeller; karşılığında ek bir sunucu katmanı ve cookie tabanlı istek güvenliğini yönetme sorumluluğu getirir.

Kanıt

tarihli yerel kaynak incelemesinde yönetici/okuyucu/anonim erişimi ve içerik kalıcılığını ele alan test kodları mevcut. Aynı gün yerelde çalıştırılan backend test paketinde 58 test geçti; yönetim alanlarının iki dilde kalıcılığı ve yetki sınırları da bu pakette sınanır. Kamuya açık ürün kişisel sitemde incelenebilir; kaynak depo ve test kodları özeldir, herkese açık repo veya CI bağlantısı sunulmuyor.

Sınırlar

Ana sayfanın erişilebilir olması bütün yönetici akışlarının doğrulandığını göstermez. Backend testleri, TypeScript kontrolü ve üretim derlemesi yayın öncesinde çalıştırıldı. Test başarısı bütün olası kullanıcı akışlarının veya güvenliğin eksiksiz olduğu anlamına gelmez. SQLite seçimi için yüksek trafik veya çok sunuculu ölçek kanıtı ileri sürmüyorum.

Tüm projelere dön

Diğer yazılarTüm yazıları gör