Selamlar, Frontend'i react ile yazmaya başladığım bir uygulamada backend hazır ve başladım ancak sorunum ile alakalı bir çok ingilizce ve farklı dillerde kaynak gezdim ancak bir mantıklı çözüm bulamadım. Sorunumun detayı şu;
Backend'de CSRF için bir endpointimiz var ve GET isteği bulunuyoruz CSRF token alıyorum ve ikinci bir istekte bu tokeni kullanıyorum.
Ama bu bana çok mantıklı gelmiyor. her işlemde 1.request olarak CSRF 2.request'te işlem request çok mantıksız geldi bana.
CSRF için nasıl bir işlem yapabilirim belli bir süre zarfında mı almam gerekiyor bir kaç profesyonel sistem inceledim ama bir sonuç alamadım.
teşekkür ederim.
ReactJs Csrf ile alakalı kritik bir sorunum var.
- Düzenlendi
mami33 Auth için ne kullanıyorsunuz? Eğer Sanctum kullanıyorsanız ve istekleri axios ile atıyorsanız bir kere /sanctum/csrf-cookie adresine istek attıktan sonra Laravel csrf token barındıran bir cookie oluşturur ve axios her istekte bunu cookie'den alıp otomatik olarak header içine ekler.
Normalde ise VerifyCsrfToken middleware aracılığı ile Laravel XSRF-TOKEN isimli bir cookie oluşturuyor. Boş bir rota oluşturup ona bile axios ile istek atsanız yine çalışır.
Aslında her istekde bir yerden alıp eklemeniz lazım ama axios bunu desteklediği için otomatik yapıyor. Axios kullanmıyorsanız ve kullandığınız her ne ise onun XSRF-TOKEN cookie okuma yetisi yoksa bunu sizin yapmanız gerekecek; XSRF-TOKEN cookie değerini okuyup header'a X-XSRF-TOKEN adı ile ekleyeceksiniz.
selamlar, backend laravel ile değil başka bir şeyle yazılmış. yani bunun tek yoluilk csrf isteği atmak arkasından da normal isteği atmak mı diyorsunuz..
- En İyi Yanıtmami33 tarafından
mami33 Evet, tek yolu bu ama csrf token oturum başı oluştuğu ve değişmediği için her seferinde istek atıp almanıza gerek yok. O yüzden cookie'de veriliyor.
Cookie'leri kontrol edin, belki backend Laravel gibi bir XSRF-TOKEN isimli cookie oluşturuyordur. İsmi farklı olabilir, sorun değil, axios ile hangi isme bakması gerektiğini belirleyebiliyorsunuz, varsayılan XSRF-TOKEN.
aynen zaten refresh token yaptım yanına da onu eklerim süper olur. teşekkür ederim.