Spring Boot ve React ile Not Tutma Web Uygulaması — 2
Login Page
Uygulamaya giriş yapabilmek için giriş sayfasında veri tabanında kayıtlı olan kullanıcı adı ve parola bilgileri girilerek “Login” butonuna basılır ve giriş işlemi başarılı bir şekilde tamamlanarak kullanıcı notlarının yer aldığı sayfaya yönlendirme yapılır.
JWT Kullanımı
Backend kısmına gelen login isteğinde controller “authenticate” metodunu kullanır. Gelen kullanıcı adı veri tabanında yoksa hata fırlatılır. Eğer kullanıcı adı veri tabanında varsa şifrelenmiş parolanın doğruluğu kontrol edilir. Parola da doğruysa JWT kullanılarak bir token oluşturulur ve gelen isteğe yanıt olarak oluşturulan token ve kullanıcı bilgileri döndürülür.
Login isteğine cevap olarak “AuthResponse” sınıfı döner. Oluşturulan token ve user bilgilerini içeren “UserVM” sınıfı bu kısımda yer almaktadır.
Kullanıcının tüm bilgilerini cevap olarak göndermemek için “UserVM” sınıfı kullanılır. Burada sadece username ve fullName bilgisi yanıta eklenir.
Token Filter
Gelen isteklerde “TokenFilter” sınıfı çalışır ve eğer başlıkta “Authorization” kelimesi varsa token inceleme işlemi yapılır. İşlemler başarılı olursa kullanıcı token bilgisi doğrulanmış olur.
Token Filter sınıfı içerisinde “getUserDetails” metodu kullanılır. Token içerisinden alınan kullanıcı id bilgisi bu sınıfta veri tabanı ile doğrulanır. Veri tabanında ilgili id bilgisine sahip bir kullanıcı yoksa işlem başarısız olur.