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.