Ajan Kartı ve Ajan Pasaportu: Biri Zincirde, Biri Sunduğumuz Bir Dosya
İki sözcük iki nesnedir
Pasaport, açık bir sicil sözleşmesindeki bir jetondur. Bir tanımlayıcısı, bir sahip adresi ve bir URI dizgisi vardır ve bir düğümü olan ve bizde hesabı olmayan herkes tarafından okunabilir.
Kart, API'mizin açık bir yolda, kimlik doğrulaması olmadan sunduğu bir JSON belgesidir. Pasaportun URI'sinin işaret ettiği şeydir.
Onları karıştırmak yaygın hatadır ve önemlidir, çünkü aynı ömre sahip değiller.
Zincirde gerçekte ne saklanıyor
Üç şey: bir tanımlayıcı, bir sahip ve bir dizgi. Kayıt çağrısı bir URI alır ve başka bir şey almaz. İşlemin hiçbir yerinde belgenin bir özeti yoktur.
Yani zincir nereye bakılacağını kanıtlar. Orada ne bulacağınız hakkında hiçbir şey kanıtlamaz. Kartı çeken bir okur, içerik için sunucumuza güveniyordur, tıpkı herhangi bir web uç noktasına güveneceği gibi, ve zincir üstü kayıt bunu iyileştirmez.
Bunu açıkça söylemek, "zincirde"nin yapamayacağı bir işi yapmasına izin vermekten iyidir.
Ve işaretçiyi değiştirmenin bir ürün yolu yok
Sicil sözleşmesi, mevcut bir ajan için yeni bir URI belirlemek üzere bir yöntem sunuyor. Arka ucumuz onu hiç çağırmıyor.
Bunu başarısız bir arama değil bir bulgu yapan Yöntem, karşısında derlediğimiz arayüzde mevcut, dolayısıyla arama yeteneği buldu ve sonra onu kullanan hiçbir şey bulmadı.
Sonuç: bir kart URI'sinin değişmesi gerekirse, örneğin bir sunucu adı taşınırsa, ürün üzerinden hiçbir yol yoktur. Jeton sahibinin sözleşmeyi doğrudan çağırması gerekirdi.
Kartın içerdikleri ve listenin neden kasten kısa olduğu
Bir tür ve bir sürüm. Tanımlayıcı ve nasıl çözümleneceği. Bir tane varsa sicil kaydı. Ve bir kimlik bilgisi listesi.
Her kimlik bilgisi girdisi bir tür, bir verme zaman damgası, zincir üstü bir kimlik bilgisi tanımlayıcısı, bir tanımlayıcıya bağlantı ve bir durum referansı taşır. İptal edilmiş kimlik bilgileri liste kurulmadan önce süzülür.
İçinde hiç iddia verisi yok. Ad yok, doğum tarihi yok, yargı alanı yok, puan yok. Kart kuruluşu gereği bir beyaz listedir: numaralandırılmış bir alan kümesi üretir, dolayısıyla bir tabloya eklenen yeni bir sütun varsayılan olarak açık bir belgeye sızmaz.
Binadan çıkan her şey için doğru biçim budur ve bir kusur kadar yüksek sesle yayımlanmaya değer.
Bir alan yanlış etiketlenmiş ve problemin tamamı o ad
updatedAt, bir şeyin değiştiği zaman değil sizin sorduğunuz zamandır. Kart işlenirken üretilir ve
kart her istekte işlenir.
Hiçbir tablo bir ajan ya da bir kimlik bilgisi için bir değişiklik zamanı saklamıyor. Bir oluşturma zaman damgası var ve başka bir şey yok, dolayısıyla biri istese bile alan adının vaat ettiği anlamı taşıyamazdı.
Bunun bir tüketiciye yaptığı: onun üzerinden önbelleğe alan herkes sonsuza dek yeniden çeker ve bir değişikliği saptamak için onu karşılaştıran herkes her seferinde bir fark alır ve hiçbir şey öğrenmez. Her zaman değişen bir alan ile hiç değişmeyen bir alan eşit ölçüde bilgisizdir ve bu alan ikisini birden başarıyor.
Doğru yaptıklarımız, aynı belirginlikle yayımlanmış
Geri alınamaz biçimde yazılan tek yapılandırma değeri, açılışta korunuyor. Açık taban URL'si, zincirde yazılan kart URI'lerine, verilen kimlik bilgilerine ve dışarıdaki doğrulayıcılara verilen durum listesi bağlantılarına basılır ve bunların hiçbiri geri alınamaz.
Koruma bir kıl payı kurtuluş yüzünden var ve kod bunu söylüyor. Değer yerel bir adrese varsayılıyordu, örnek yapılandırmada eksikti ve üretimde hiç ayarlanmamıştı, dolayısıyla ilk pasaport demirlemesi açık bir zincir üstü sicile bir localhost URL'si yazmaya kalktı. Yalnızca aktarıcının gazı olmadığı için başarısız oldu.
Düzeltme hataya kapalıdır: üretimde hizmet, değer açık ve güvenli bir kaynak olmadıkça başlamayı reddeder. İlgisiz bir arıza tarafından yakalanmış bir kıl payı kurtuluş, tam olarak unutulan türdendir, dolayısıyla korumanın kendi yorumuna yazılmıştır ve burada tekrarlanmıştır.

