Bu derste tekrar hoş geldiniz, eğlenceli yeni malzemeler göreceğiz.
Kullanıcı modelimizi kamplarla kapatıldığımız kimlik doğrulamasını birleştirerek bir kullanıcının kendi oluşturmadığı
kampanyaları silemeyeceğinden veya bir kullanıcının kamp alanını düzenleyemediğinden emin olmasını sağlamak
için kullanacağız yaratmadım.
Ve bu yetkilendirme diye bir şey.
Yani, kimlik doğrulama ve yetkilendirme farklı kimlik doğrulama var demektir kim olduklarını olup olmadığını
öğrenmek için başvuruyor.
Bir kere kim olduğunuzu bir kere biliyorsanız iyi izin verilir.
Ne yapmalarına izin verdiklerini anladın.
İzin vermek için düşünün.
Uygulamamızda güvenlik izniyle ne yapmaya yetkili biri ne olabilir.
Yani eğer benimle aynı kampanyaya sahip değilseniz, bir kamp alanınız yoksa. D. kamp yazarına göre
onu güncelleyemez veya silebilirsiniz.
Şimdi basit başlayalım ve onunla çalışalım, böylece kendi kampınızı almadıkça size düzenleme
formunu veremezsiniz.
O halde buradaki kamp yollarına gidelim.
Ve ne yapmak istersek, kamp yoluna gitmeye çalışırsanız ya da güncellerseniz ve sonunda bunların
hepsini de silmek için kontrol ettiğimiz mantığa ihtiyaç duyarız.
Mevcut kullanıcının kimliği I. D. o kampın yazarının kimliğini eşleştirin.
Bu nedenle, veri yapımızın, kamp modeli çıktığımız yere benzediğini unutmayın.
Her kamp için yazarımız var ve bir ben var. D. Bu bir ben olacak D. Bir kullanıcı için belirli
bir kullanıcının nesnesine (1) başvuruyor. D. ve elbette bir nesne olan bir kullanıcımız var. D. Burada belirtilmedi, ancak her
kullanıcının I. yazısı var. D. ve şu anda oturum açmış olan kullanıcılarımı karşılaştıracağız. D. kampçı yazarın
nokta kimliklerine yazmamız gerekiyor, böylece biz de bizimkine girersek bunu kolayca yapabiliriz.
Oradan başlayacağız.
Ve yapmak istediğimiz ilk şey, kullanıcının oturum açmış biri olduğunu kontrol etmektir.
Ve sonra yapmazsak yazı yönlendiririz.
Bir kullanıcı oturum açarsa, kullanıcının kendi kamp yeri var.
Ve öyleyse kullanıcıya bu kodu çalıştırıp kimliğimi bulmasına ve her şeyi silmesine izin vereceğiz.
Aksi takdirde de yönlendireceğiz.
Bu yüzden, birilerinin oturum açıp açmadığını görmek için bunu dolduralım.
İstenildiğinde yazabiliriz.
Ayrıca, daha önce burada tanımladığımız ortama giriş yapabiliriz.
Birazdan bunu neden yapmayacağımızı göstereceğim.
Kısa cevap, kendi ara katmanımızı tanımlamamız ve birazcık.
Bu yüzden, bu ara katman yerine bu işlevselliği birleştireceğiz.
Dolayısıyla bir istek doğrulanıp onaylanmadıysa, biz de gidebiliriz.
Durum böyle değilse başlamak için sabit bir günlük yapalım.
Bunu yapmak için oturum açmanız gerekir ve sonra bir yanıt vereceğiz.
Ve yanıt gönderilmeye başlamak için bir gönderme yapalım ve bunu aslında biz göndereceğiz.
Dolayısıyla, eğer giriş yapmadığımızı ve ilk şeyin işe yarayacağını bileceğimizi görürsek.
Bu kodu if deyiminin içine kopyalayıp düzgün girintilere girelim.
TAMAM.
Bu yüzden giriş yapmamız gerekiyor.
Bunu yapmak için zaten kod yazmış olduğumuz yeni bir şey yok.
Bu yüzden nerde olduğumuzun tuhaf bir şekilde nereye gittiğimi düşünüyor olabilirsiniz.
Ancak bir anı neden göreceksin.
Ancak deneyeceğiz.
Kaydetme, sunucuyu yukarı kaldırın.
Ve başladığımda henüz giriş yapmadım.
Kimse giriş yapmadı.
Dolayısıyla, denersem ve çizgiye geçersem bana bunu
yapmak için giriş yapmanız gerektiğini söyler.
Bu yüzden ilk bölümümüz iyi çalışıyor.
Sonra bir kere kilitlendiğimizde burada denetlenecek başka bir açıklama yapacağız.
Kullanıcı kampa sahip mi?
Ve bunu yapmanın yolu oldukça basittir.
Yapmamız gereken ilk şey, burada yaptığımız kampı bulmak.
Sonra bulduğumuzda, o kampdaki yazarın kimliğinin, o kullanıcıyı talep eden mevcut kullanıcıyla
eşleşip benzetilmediğini kontrol etmemiz gerekiyor.
O halde gidemiyoruz.
Dolayısıyla burada kampın içindeki kullanıcı ne yapıyor yapacağımız içerideyiz.
Herhangi bir hata olursa bir hata olup olmadığını kontrol etmek için ilk bit tutarız o zaman kontrol ederiz.
yapabileceğimizi düşündüğünüz gibi campground nokta yazar kimliğine sahipseniz bir if ifadesine ve B'ye sahip olacağız.
Kamp üzerinde bulunan bir kullanıcı var demektir, çünkü bulunan kamp yeri var demektir ve daha sonra bunu
Eşittir eşittir eşittir.
Kullanıcıya alt çizgi kimliğini basmasını isteyin.
Yani şunu söyleyeyim ne demek istediğimi gösterelim bir iletişim defteri yazarının yazarının düşüncelerini id ve daha sonra bunun
log isteğini iptal edeceğini kullanıcı altındaki kimliği altını çiziyor.
Yani bir açıklama if deyimi.
Bu iki satırı da göreceğiz.
yapmadan hemen yenilemeyi denersem tabii ki giriş yapmam gerekecek, bir hatamız var.
Eğer giriş
Ama şimdi giriş yaparsam Patates Kafası'na
girer ve sonra granit maden ocağına geri dönerim.
Bir problemimiz var.
Bir bakalım sanki.
Peki bu aptalca ve kamp gibi Arthur kamp yok iptal etmeye çalışıyorum.
Kamp yeri bulundu.
Bu yüzden tekrar deneyeceğim sunucu yeniden başlatın.
İlk kez tatlıyız.
Bize hala giriş yapmanız gerektiğini söyleyin.
Böylece yine Potato Head'de oturum açtık.
Parola.
TAMAM.
Şimdi denesem ve
bulursam, burada gördüğümüz şeylere bir göz atın.
Yazdığımız ilk şey şu şekildedir.
Böylece Arthur ID kampı bulundu ve o zaman kullanıcı verilerini istiyoruz. D. ve aynı oldukları
izlenimi veriyorlar.
Ve yazdırıldıklarında aynı kalıyorlar.
Ancak perde arkasında aslında aynı değildir, bu nedenle kullanıcı kimliği onun altçizgi kimliğini belirtir. Bir kampanya
yazarının nokta kimliğini bulduğu bir dizedir. Bu bir mongoose nesnesidir.
Ve bu sadece zor bir iş.
Hatırladım, zaman zaman gerçekten sinir bozucu çünkü hata ayıklamaya çalıştığınızda aynı
görünüyorsunuz ama gerçek şu ki ilk olanlar gerçekte bir dize değil, bir mongoose nesnesidir.
Basılı çıktı.
Bir dize görüyoruz, ancak bu sadece iki dize sürümü.
Sahnelerin arkasında bir ip yok.
Ve bu bir ip.
Bu yüzden onları karşılaştırdığımızda işe yaramaz.
Dolayısıyla bunları üçlü eşit veya çift eşdeğerlerle karşılaştırmak yerine, mongoose'un bize bu
amaçla verdiği bir yöntemi kullanın.
Bu yüzden yaptığımız, kampları kontrol etmek yerine bir IF deyimi yazmak.
Yazarın Dodd ID üçlüsü, Kullanıcı Kimliği'nde istekle eşit.
Nokta eşittir.
Oraya gidiyoruz.
Ve şimdi, IF ifademiz, kampanyada bu kimliğini kullanarak bulduğumuz veritabanına geri dönen
şeyin bulunması gerektiği gerçeği dışında çalışmalıdır.
Dolayısıyla rotanın kapalı olduğu kimliğiyle, bulduğumuz kampa ilişkin yazar kimliğinin şu anda oturum açmış
olan kullanıcı kimliğine eşit olup olmadığını kontrol ediyoruz.
Durum böyleyse bir şey yapacağız.
Aksi takdirde başka bir şey yapacağız.
Durum buysa, bunu burada yapacağız. Kampın bulunduğu kamp sayfasını düzenleme kamp sayfasını
oluşturun.
Aksi taktirde bir dinlenme yapacağız göndeririz.
Elbette bunu yapmak için izniniz yok, sonunda bunu değiştirecek ya da yalnızca kırmızı bir nokta
yüz değil, görüntüleyen gerçek bir mesajımız olacak.
gitmeye çalışalım,
şimdi denemek ve düzenlemek isterseniz bir şov sayfasına ilk gidip giriş yapmam gerekiyor.
Şimdi uygulamamıza
Şimdi eğer giriş yaparsam ya da Potato Head'dan başka biri olarak
kaydolursam domates kafa yaparım ve umarım bunu göreceğini de deneyeceğim.
İşte gitmene izin vermenize izin veriyorum.
Şimdi geri dönüp Çıkış yaparsak ve Patates Kafası olarak tekrar giriş
yaparsak ve hepsini tekrar denersek deneyebilir ve düzenleyebiliriz.
Benim iznim var.
Ve ben buraya geliyorum.
Yani çalışıyor.
Bu harika.
Şimdi ne yapacağız aslında bunu ayrı bir işleve dönüştürecek.
Bu mantıkların çoğunda buna benzer bir şey denir.
Kullanıcı kampını kontrol et veya kamp yeri kullanıcısına, şu anda giriş yapmış olan kullanıcının bu belirli kamp ile eşleşmesini temelde
kontrol ettiğimiz bir şey olduğundan emin ol.
Ve bunu ara katmana taşıracağımız nedeni, düzenlemede kullanacağımızdır.
Güncellemede kullanmak istiyoruz.
Birinin oturum açmadıklarında birinin istek göndermesini istemiyoruz.
Bu yüzden tarayıcıyı tekrar kullanıyor olsanız bile.
Aslında görsel olarak veri göndermek için güncellemeye ulaşmanın tek yolu bu formu kullanıyor.
Postacıyı postacıdan istek göndererek kimliği doğrulanamadığında kullanabilirsiniz.
Bu yüzden burada aynı mantığı istiyoruz ve silme işlemi için aynı şeyi yapmak istiyoruz.
Dolayısıyla, giriş yapmadıysanız, bir kamp içerisinde bir şey silmenizi istemiyoruz.
Ve eğer sahip değilsen.
Yapacağımız şu ki, bu kodu şimdilik kopyalayacağımız bir katman yazıyoruz.
Oraya bırakacağım, ancak şimdi sadece diğer katman yazılımıyla birlikte aşağı ineceğiz.
Son nihayet kamp sahipliğini sadece böyle kontrol et.
Ve sonra bu kodu yapıştıracağız ve burada yapmam gereken küçük bir iş olacak.
Fakat nihai hedef, düzenlememizde, ara katman ekleyerek burada kamp sahipliğini kontrol etmemiz gerektiğidir.
Güncelleştirmeyi yapmalıyız.
Ayrıca silmeyle birlikte başlayacağız ve ne yapmak istediğimizi kontrol etmek.
Öncelikle istek yanıtını eklemelisin ve sonra şunu aradım ki ara katman talebi yanıtı
gelecekte ayarlanacak.
Yani kullanıcı şu anda giriş yapmışsa.
Bize dinlenmek yerine giriş yapmadıysanız, yola devam edin, gönderelim.
Şimdilik bir restoran yönlendirme yapacağız ve henüz görmedik.
Redstart yönlendirme işlemini geri alabiliriz ve bu da kullanıcıyı en çok geldikleri yere götürecektir.
Bulundukları önceki sayfada ve çok yakında bir mesaj gönderebileceğimizi göstereceğiz.
Eh, göndermek istediğimiz mesaj, giriş yapmadığınız veya sizde buna izin verilmesi gerektiği
gibi bir şey ama şimdilik böyle bırakıyoruz.
Sonra giriş yaptıklarında kampı bulacağız.
Bir hata varsa, yalnızca tekrar yönlendireceğiz.
Kampın bir nedenden dolayı bulunamadığı veya veri tabanı bağlı
olmadığı veya kampın istekleri kullanıcı kimliğiyle eşleşmesi durumunda aslında göremeyeceği garip bir şey varsa,
yine bu hata olur.
Öyleyse, içindeki gibi bir kullanıcı bunu yapıyorsa, kampları render etmekten ziyade, bu ara
katmanın herhangi bir şey yapmak istemediğimizi düzenlemesini istemediğimiz için, silinirken kodun geri kalanına geçin
veya kodu kaydırın. bir güncelleme veya bir düzenleme.
İşte o zaman burada yapacağız.
Aksi halde, sahip değillerse, bir rez yeniden yönlendirme yapacağız.
Harika.
Şimdi bunu kaydetmeyi deneyelim ve burada düzenleme rotamıza bir güncelleme yapacağız.
Bu işi çok fazla azaltabiliriz, bu nedenle kampı bulmak istiyoruz ve bunu yapmamız
gereken tek şey kampı bulursak kontrol etmemizi gerektirmemesi dışında bunu yapmamız gerekmiyor. Artık eşleşir çünkü
bunu ortada yapıyoruz, bu yüzden hepimiz yapmak istediğimiz, hepsinden kurtulabileceğiniz bir
kamp bulmaktır.
kalacaktır.
Hemen hemen tüm Office biçimleri bu doğruca biraz dışarı
Oraya gidiyoruz.
Scheck'in kamp sahiplik oranını buraya eklediğimiz için şimdi şu anda yapacağımız şey şu
ki bu noktaya gelersek, kamp sahipliğini kontrol ettik ve bunu gerçekleştirdik.
Aksi takdirde, göreceğimiz hata ile bu yönergeyi yönlendiren bir sorun
varsa burada küçük bir sözdizimi hatası var, bu da burada işlev bildirimi silindi ve hatayı
işlemez olduğumuzdan şikayetçi olduğunu görebilirsiniz. biz halledebiliriz.
aslı burada, PI Kimliği bulma hatası olmamalı çünkü burada yapmıştık.
Ama işin
Ve işe yararsa yine de iyi olmalıyız.
Öyleyse herhangi bir sorunumuz olup olmadığına bakıp deneyelim.
Temel olarak, kodumuzu ayrı bir işleve taşıdık.
Ve doğru işleyene gelmeden önce bir ara katmanın denildiğini hatırlayın.
TAMAM.
Öyleyse bir şans verelim.
İlk şey geriye dönelim ve diyelim denemek ve düzenlemek üzerine gidelim.
Ben değilim.
Beni nerede olduğuma geri yönlendirmelidir.