मेरा ऐप बैकएंड पर फ्रंट एंड और लैरवेल 5.4 पर प्रतिक्रिया का उपयोग कर रहा है। बैकएंड से डेटा का अनुरोध करने के लिए मैं fetch()
का उपयोग कर रहा हूं। समस्या यह है कि पेज लोड होने पर दो सत्र बनाए जाते हैं। एक TokenMismatchException
सीएसआरएफ मिडलवेयर द्वारा फेंक दिया जाता है जब POST
अनुरोध किया जाता है क्योंकि भेजा गया टोकन पहले सत्र से मेल खाता है, लेकिन यह दूसरे के खिलाफ जांचता है।लार्वेल एपीआई पर प्रतिक्रिया प्राप्त करें नया सत्र
a:3:{s:6:"_token";s:40:"7obvOzPaqqJDtVdij8RaqrvmTFLjKA2qnvYMxry6";s:9:"_previous";a:1:{s:3:"url";s:24:"http://localhost/page";}s:6:"_flash";a:2:{s:3:"old";a:0:{}s:3:"new";a:0:{}}}
a:3:{s:6:"_token";s:40:"5Aiws9Qy72YzlkfWX81zkhzrSeiMDYjFWiLeDAwN";s:9:"_previous";a:1:{s:3:"url";s:41:"http://localhost/api/page";}s:6:"_flash";a:2:{s:3:"old";a:0:{}s:3:"new";a:0:{}}}
अनुरोध:
मैं app.blade.php
<meta name="_token" content="{{ csrf_token() }}">
में टोकन सेट कर रहा हूं और लाने config
fetchConfig = {
headers: {
'Content-Type': 'application/json',
'Accept': 'application/json',
'X-CSRF-TOKEN': $('meta[name="_token"]').attr('content')
},
credentials: 'same-origin'
}}
यहाँ में टोकन हथियाने decrypted सत्र हैं यूआरएल: http://localhost/page
API URL: http://localhost/api/page
मैं से बनाया जा रहा है जब प्रतिक्रिया एप्लिकेशन अपनी प्रारंभिक GET
अनुरोध करता है एक नया सत्र कैसे रोक सकते हैं?
कौन सा सत्र ड्राइवर आप उपयोग कर रहे हैं? –
मैं 'file' सत्र ड्राइवर का उपयोग कर रहा हूं। – bill
यदि आपने जेडब्ल्यूटी एथ (जेएसओएन वेब टोकन प्रमाणीकरण) टोकन एपीआई को टोकन का उपयोग किया है। क्योंकि एपीआई राज्य को बनाए रख सकता है।इसलिए, यदि आपको सीएसआरएफ टोकन सत्यापन की आवश्यकता है, तो आपको इसे मेटा टैग में या एक निजी दावे के रूप में जेडब्ल्यूटी पेलोड के अंदर संग्रहीत करना होगा। –