API ve REACT

4 May 2022
74
23
Türkiye
Backend tarafında Node.js in express yapısının kullanıldığı, Frontend tarafında ise React.js'in kullanıldığı bir uygulamam var. Backend - Frontend arası haberleşme sistemlerinde herhangi bir sıkıntı yok fakat konu 'SESSION' yapısına veya Cookie yapısını geldiğinde bazı problemler ortaya çıkmaktadır.
Örneğin Login işlemleri esnasında Backend tarafına istek atıp SESSION oluşturduğumda oluşturulan Session'a ait Cokkie bilgilerinin frontend alanıma eklenmesi gerekirken maalesef bu işlemi yapamamaktayım.
Araştırdığım kaynaklar bana Node.js tarafında Cors paketinin içerisine 'CREDENTIALS' özelliği eklememi ve Frontend tarafında aynın şekilde Credentials özelliklerini True hale getirmemi söylediler.
Kodlar:
JavaScript:
// * Backend area
const corsOptions = {
   origin:allowedOrigins,
   methods:['GET', 'PUT', 'DELETE', 'POST'],
   credentials:true,
   optionsSuccessStatus:200
}

app.use(expressSession({
   key:'userID',
   secret:'Deneme',
   resave:false,
   proxy:true,
   saveUninitialized:true,
   cookie:{path:'/', httpOnly:true, secure:false, maxAge:time}
}))

app.use(cors(corsOptions))


// * Frontend Area
   Axios.defaults.withCredentials = true

   const handlePost = () => {
      Axios.post('http://127.0.0.1:8000')
         .then((response) => {
            console.log(response.data)
         })
   }
İstek yapılarını görmek isteyenler varsa öncesinde şunu söyleyeyim POSTMAN ile kontrol ettiğimde session oluşturuluyor ve başarılı bir şekilde çalışıyor. Sadece Frontend tarafından atıldığında Frontend Cookie alanına Session erişim bilgilerinin gelmediğini görüyorum.
JavaScript:
// Create a sesssion
app.post('/', (req, res)=>{
   req.session.userID = 'hello world'
   res.send({
      message:'Is created a session?'
   })
})

// Is there session control
app.get('/', (req, res)=>{
   if(req.session.userID){
      res.send({
         case:'true'
      })
   }
   else{
      res.send({
         case:'false'
      })
   }
Yani problem kesinlikle Frontend alanına Cookie eklenmemesi ile alakalı fakat çözüm nedir onu bilmiyorum, bilgisi olup bizi aydınlatacak biri var mıdır acaba?
 
4 May 2022
74
23
Türkiye
Kendi soruma cevap verecekmiş gibi oluyorum ama bilmenizi isterim arkadaşlar, Backend tarafında oluşan Session - Cookie değerlerine Frontend tarafından erişim kısmen ayarlarla falan mümkün gibi görülse de işin gerçeği bu tarayıcıdan tarayıcıya değişmektedir.

Eğer sizde yukarıdaki kodlar çalışıyorsa bilmeniz gerekir ki bu kodlar sadece sizin tarayıcınızda çalışıyor olabilir.
  • Zira sizin tarayıcınızda bu erişime izin verilmiş olabilirken başka tarayıcılarda bu erişime izin verilmemiş olabilir.
  • Dolayısıyla kontrol yapısı sizin elinizde olmayacağından maalesef ki Node.js 'in belki de en büyük nimetlerinden olan Session yapısından vaz geçip alternatif yöntemleri aramak gerekmektedir.
Alternatif yollar. "Redis, JWT vb."
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.