• Buradasın

    ASP.NET Core'da JSON Web Token ile Yetkilendirme Eğitimi

    youtube.com/watch?v=e5-fWouPgwA

    Yapay zekadan makale özeti

    • Bu video, bir eğitmen tarafından sunulan teknik bir eğitim içeriğidir. Eğitmen, ASP.NET Core uygulamalarında JSON Web Token (JWT) kullanarak yetkilendirme yapma sürecini adım adım göstermektedir.
    • Video, kimlik doğrulama (authentication) ve yetkilendirme (authorization) kavramlarını açıklayarak başlıyor, ardından JWT'nin yapısını ve kullanımını anlatıyor. Eğitmen, token oluşturma, saklama ve yetkilendirme kontrolü için gerekli kodları yazarak, middleware oluşturma, token doğrulama ve hata yönetimi işlemlerini detaylı olarak gösteriyor.
    • Eğitim içeriğinde Thunder Client kullanılarak token simülasyonu yapılıyor, veritabanından kullanıcı bulma işlemleri gösteriliyor ve farklı token gönderildiğinde nasıl hata mesajı alınacağı test ediliyor. Video, login işlemi sonrası kullanıcıya özel token verme ve bu token sayesinde yetkilendirme kontrolü yapma sürecini kapsamlı şekilde ele alıyor.
    Yetkilendirme İşlemleri
    • Önceki çalışmada login işlemleri üzerinde konuşulmuş, bu çalışmada ise yetkilendirme (authorization) işlemleri ele alınacak.
    • Authentication (kimlik doğrulama) işlemi, kullanıcı adı ve şifre ile sisteme giriş yapma işlemidir.
    • Authorization (yetki) kavramı, giriş yapan kullanıcının sadece kendine özel bilgilere erişim sağlanması için gerekli yetkileri vermedir.
    02:41JSON Web Token (JWT)
    • Bu çalışmada JWT (JSON Web Token) kullanılarak yetkilendirme işlemleri yapılacaktır.
    • JWT, veri doğrulamasını sağlayan JSON tabanlı bir standarttır ve üç bölümden oluşur: header, payload ve signature.
    • Header bölümünde algoritma token tipini belirler, payload bölümünde saklanan bilgiler bulunur, signature bölümünde ise kullanılan secret key anahtar kelimesi yer alır.
    03:47JWT Kullanımı
    • Giriş işlemi sonrasında kullanıcı adı ve şifre gönderildiğinde JWT tokenı oluşturulur ve local storage'a saklanır.
    • Önceki projede Express session'lar kullanılırken, JWT ile token sunucu tarafında değil kullanıcı tarafında saklanır.
    • Yetki istenen işlemlerde (örneğin items get isteği) kullanıcı yetkisinin kontrolü JWT tokenının içerisinde yapılır.
    05:06JWT Paketi Kurulumu
    • Kullanılacak JWT paketi neredeyse haftalık sekiz milyon kullanım sayısına sahiptir.
    • Proje için "npm install jwt" komutu ile paket indirilir ve "npm start" ile projeye başlanır.
    • Login sayfasında kullanılacak token için "createToken" adında bir fonksiyon oluşturulur.
    06:06Token Oluşturma Fonksiyonu
    • "createToken" fonksiyonu, tokenın payload kısmında kullanıcı ID'sini saklar.
    • JWT paketi import edilerek "sign" metodu kullanılarak token oluşturulur.
    • Token için private key oluşturulur ve "cwtSecret" adında bir değişkene atanır.
    09:26Token Kullanımı
    • Login işlemi sonucunda kullanıcıya JSON formatında veri döndürülür.
    • Döndürülen veriye kullanıcı ID'si ve oluşturulan token bilgisi eklenir.
    • Oluşturulan token sayesinde kullanıcının yetkisi kontrol edilebilir.
    12:09Yetkilendirme Middleware Oluşturma
    • Sadece yetkisi olan kullanıcının belirli bir sayfayı görmesini sağlamak için middleware eklenecek.
    • Middleware klasörü oluşturulup "out middleware.js" dosyası ekleniyor.
    • "authenticateToken" adında bir fonksiyon oluşturuluyor ve bu fonksiyon request, response ve next parametrelerini alıyor.
    13:52Middleware Kullanımı
    • Ana sayfaya erişim için yetkilendirme middleware'ı kullanılacak.
    • "out middleware" dosyası import edilerek "getIndex" fonksiyonuna ekleniyor.
    • Middleware, istek gelmeden önce yetkilendirme kontrolü yapacak.
    15:14Yetkilendirme Sorunu ve Çözümü
    • Ana sayfaya erişim denendiğinde "out undefined" hatası alınıyor çünkü header'da yetkilendirme bilgisi gönderilmiyor.
    • Thunder Client kullanılarak login işlemi yapılıyor ve token alınıyor.
    • Token alındıktan sonra anasayfaya erişim denendiğinde middleware'da token kontrolü yapılıyor.
    20:14Token Kontrolü
    • Token kontrolü için "const token" değişkeni oluşturuluyor.
    • Authentication header varsa, token değeri "split" fonksiyonu ile boşluk karakterine göre ayrılıyor.
    • Token değeri konsola yazdırılıyor.
    21:12Thunder CLI Kullanımı ve Token Kontrolü
    • Thunder CLI, tarayıcıda token verme alanı olmadığı durumlarda token simülasyonu yapmak için kullanılır.
    • Token kontrolü için if koşulu kullanılır; token yoksa 401 status kodu ve "No token available" hata mesajı döndürülür.
    • Token varsa, token içerisindeki user ID ile veritabanından ilgili kullanıcı bulunur.
    24:13JWT Veritabanı Kontrolü
    • JWT (JSON Web Token) doğrulaması için "verify" fonksiyonu kullanılır ve token ile secret parametresi gerekir.
    • Doğrulama başarılı olduğunda, token içerisindeki user ID ile veritabanından gelen kullanıcı eşleştirilir.
    • Eşleştirme başarılı olduğunda "next" işlemi yapılır ve bir sonraki işleme geçilir.
    28:29Hata Yönetimi
    • Farklı bir token gönderildiğinde hata mesajı almak için try-catch bloğu kullanılır.
    • Catch bloğunda hata durumunda 401 status kodu ve "Not authorized" hata mesajı döndürülür.
    • Doğru token kullanılmadığında hata mesajı alınır ve çalışma tamamlanır.

    Yanıtı değerlendir

  • Yazeka sinir ağı makaleleri veya videoları özetliyor