· kaynak Hacker News – Front Page (hnrss.org)
Bir girişimin AWS Cognito deneyimi: parçalı dokümantasyon, Amplify v6 yeniden yazımı ve değiştirilemeyen attribute'lar
Bir girişim mühendisinin AWS Cognito'nun parçalı dokümantasyonu, Amplify v6 yeniden yazımı ve değiştirilemeyen user pool attribute'ları hakkındaki anlattıkları Hacker News'te ilgi görüyor.

AWS Cognito üzerinde girişim kimlik doğrulaması kurmaya dair birinci ağızdan bir anlatım, Hacker News'in ana sayfasına ulaştı; yazarı, bu servisi bir daha tercih etmeyeceği sonucuna varıyor. Geliştirici Josh Karamuth'un kişisel blogunda yayımlanan yazı, bir şikâyet yazısından çok somut hata türlerinin bir listesi gibi ve servis değerlendiren ekiplere pratik önerilerle son buluyor.
Yazıya göre ekip, Cognito'yu zaten AWS kurulumarının bir parçası olduğu ve ücretsiz katmanın ilk 50.000 aylık aktif kullanıcıyı kapsadığı için seçmiş. Yazar daha önce Auth0, Firebase Auth ve el yapımı bir JWT sistemiyle kimlik doğrulama geliştirmişti ve işin rutin olmasını bekliyordu. Onu izleyenlerin, yazdığına göre, tek seferlik hatalar değil yapısal sorunlar dizisi olduğunu söylüyor.
Aynı anda çok fazla hedef kitleye hitap eden dokümantasyon
İlk şikâyet dokümantasyonla ilgili. Yazara göre AWS aynı anda birkaç hedef kitleye yazıyor — protokol düzeyinde ayrıntı isteyen kurumsal mimarlar, sadece bir login formuna ihtiyaç duyan web geliştiricileri ve native SDK rehberliğine ihtiyaç duyan mobil geliştiriciler — ve sonuç hiçbirini iyi服务 etmiyor. Sayfalar hiçbir zaman açıkça işaretlenmeyen ön okumalar varsayıyor ve kod örnekleri en az üç nesil araçları karıştırıyor: eski JavaScript SDK, Amplify v1 API ve ham AWS SDK, çoğu zaman bir örneğin hangisine hitap ettiği belirtilmeden. Bir kod parçacığının hangi kütüphaneye ait olduğunu çözmek, diyor, import ifadelerini inceleme alıştırmasına dönüşüyor.
Yeniden yazımı zorunlu kılan bir sürüm güncellemesi
En maliyetli sorun, Cognito'nun JavaScript client kütüphanesi olan Amplify'la ilgiliydi. Ekip, sign-in akışlarını Amplify v5 ile kurdu ve yayımladı; yazar daha sonra v6'ya yükselttiğinde, sürümün birkaç method imzasını ayarlamak yerine kütüphanenin Cognito ile nasıl konuştuğunu yeniden mimarlandırdığını gördü. Ekibin arayüzünün bağımlı olduğu fonksiyonlar kaldırılmış ya da değiştirilmişti ve migration guide boşlukları tam olarak kapatmıyordu. Çalışan, production'da test edilmiş kimlik doğrulama kodu kademeli olarak refactor edilmek yerine yeniden kurulmak zorunda kaldı.
Sadece bulutta test imkânı ve sınırlı UI kontrolü
Cognito'nun yönetilen bir bulut servisi olduğu için, yazarın belirttiğine göre, çevrimdışı testler için gerçekçi bir yerel örnek çalıştırmanın desteklenen bir yolu yok. Topluluk emülatörleri ve plugin'leri mevcut ama bakım ve doğruluk açısından değişkenlik gösteriyorlar; bu da onun durumunda gerçek olandan farklı davranan bir yerel mock üretti — hatalar yerel kontrollerden geçip staging'de ortaya çıktı ve yerel geliştirmenin amacını ortadan kaldırdı.
Hosted login UI de benzer eleştiriler aldı. Konsolda logoyu değiştirmenin ve bazı CSS ayarlamanın ötesinde branding seçenekleri sınırlı ve düzen bariz biçimde AWS görünümünde kalıyor. Yaygın topluluk çözümü, hosted UI'yi bırakıp SDK üzerinde özel bir arayüz kurmak; bu da yönetilen sunumun değerinden götürüyor.
Email attribute tuzağı
Yazının en keskin ibret verici öyküsü bir kurulum hatasıyla ilgili. Uygulamanın yalnızca email ile sign-in yapması gerekiyordu ve yazar, Cognito'nun email'i core attribute, alias veya custom attribute olarak yapılandırılmasına göre farklı ele aldığını, ilgili seçeneklerin birden çok konsol ekranına yayıldığını ve aralarındaki bağımlılıkların açıklanmadığını keşfetti. Standart bir attribute gerekirken birini custom olarak yapılandırdıktan sonra, user pool attribute'larının bir kez oluşturulduğunda kalıcı olduğunu öğrendi. Çözümler, pool'u silip baştan başlamak ya da canlı kullanıcıları doğru yapılandırılmış bir pool'a, password reset dahil, script'le taşımak — zaten production'da olan bir ürün için cazip olmayan seçenekler.
Neden önemli
Yazara göre kimlik doğrulama, geliştirici deneyimini ekosistem kolaylığı karşılığında feda etmenin kötü bir yeridir. Ücretsiz katman, dokümantasyonla boğuşmaya ve bozucu kütüphane değişiklikleri etrafında kod yeniden yazmaya harcanan mühendislik saatleri sayıldığında artık ucuz görünmüyor; debugging'e kaybolan zamanın bir ticari auth sağlayıcısının birkaç yılını karşılayabileceğini tahmin ediyor. Cognito'yu değerlendiren ekiplere önerisi, önce küçük ama önemsiz olmayan bir proof of concept kurmaları — custom attribute'ları, email doğrulamasını ve bir password reset akışını zorlayan bir tane — ve harcanan zamanı ölçmeleri. Ayrıca projede hâlâ Cognito çalıştırdığını, çünkü artık çıkarılamayacak kadar gömülü olduğunu belirtiyor. Dersin bir parçası bu: erken verilen auth seçimleri tersine çevrilmeleri pahalıdır, dolayısıyla değerlendirme aşaması 'zaten ekosistemde yer alıyor' lafının genellikle aldığından daha fazla ağırlığı hak ediyor.
- #aws
- #authentication
- #cloud
- #developer-experience
- #startups