v2.5.2
Giriş yap

ReactJS ve NodeJS hakkında aklıma takılanlar.

ozguryurt
316 defa görüntülendi

ReactJS bilgim yeterli düzeyde denebilir, Redux yapısını vs. biliyorum.
NodeJS'te ise bir API yapmışlığım var, az da olsa biliyorum sayılır.

Sormak istediğim şunlar:
1) Kullanıcı giriş yaptığında back-end'deki '/login' sayfasına istek atacak, dönen yanıta göre kullanıcı giriş yapmış olacak. Kullanıcının giriş yaptığı kullanıcı adı bilgisini bir state'e atayıp orada mı tutmalıyım ve diğer isteklerinde de bu state'i mi kullanmalıyım yoksa başka bir yöntem kullanılabilir mi?
2) Yine kullanıcı giriş yaptığında, back-end kısmında JWT'den üretilen tokeni React'te bir state'te mi tutmalıyım ve istek atarken yine bu state'i mi kullanmalıyım?
3) Bazı sayfaların da sadece üye girişi yapmış olanların veya admin yetkisine sahip olanların görüntülemesini istiyorum. Bunun için yine state'te tuttuğum kullanıcı adı bilgisini kullanıp veritabanında sorgu mu yaptırmalıyım? Veya başka bir yolu var mı?

Bu konular hakkında yardımcı olanlara şimdiden teşekkürler.

Cevap yaz
Cevaplar (2)
tayfunerbilen
591 gün önce

Login işlemi için back-end'e istek attığında, backend'den iki şey döneceksin.

  1. JWT token
  2. Kullanıcı Datası

React tarafında token değerini state'de tutacaksın. State'e eklerken aynı zamanda localStorage'a da ekleyeceksin.
Kullanıcı datasını da yine state'de tutacaksın ancak localStorage'a eklemene gerek yok.

Çünkü her sayfa yenilendiğinde ilk başta token değerin varsa gidip /user-info gibi bir end-point'e token'ı gönderip bu kullanıcının geçerli olup olmadığına bakacaksın.
Eğer token geçerliyse kullanıcı bilgileri dönecek, geçersizse react tarafında token'ı silip kullanıcının oturumunu sonlandıracaksın.

Eğer rol bazlı işlemler yapacaksan, users tablonda role ya da permissions gibi kolonların olabilir. User bilgisini döndürürken bunu state'de tutacağın için, projende istediğin yerde admin'se göster değilse gösterme gibi komutlar yazabilirsin.

Zaten backend'e istek attığında admin olup olmadığını orada da kontrol edeceğin için sorun olmayacaktır.

yali
590 gün önce

react-auth-kit adlı kütüphaneyi kullanmanı öneririm. https://authkit.arkadip.dev/installation/