लारवेल एपीआई में पोस्ट और पुट विधियों के लिए 419 स्टेटस कोड को समझना
लारवेल का उपयोग करके एक रेस्टफुल एपीआई विकसित करते समय, 419 का सामना करना आम है POST और PUT विधियों के लिए स्थिति कोड। यह त्रुटि लारवेल की सीएसआरएफ टोकन सत्यापन प्रक्रिया के कारण होती है।
लारवेल 5.4 और पुराने संस्करणों में, सीएसआरएफ टोकन POST और PUT विधियों सहित सभी अनुरोधों के लिए सक्षम हैं। यह एप्लिकेशन को क्रॉस-साइट अनुरोध जालसाजी (सीएसआरएफ) हमलों से बचाने के लिए है। डिफ़ॉल्ट रूप से, सीएसआरएफ टोकन को फॉर्म के भीतर छिपे हुए फ़ील्ड के रूप में दृश्य में जोड़ा जाता है।
जब कोई POST या PUT अनुरोध सबमिट किया जाता है, तो लारवेल अनुरोध डेटा के साथ एक वैध सीएसआरएफ टोकन प्राप्त करने की उम्मीद करता है। यदि वैध टोकन नहीं मिलता है, तो लारवेल एक "419 सीएसआरएफ टोकन बेमेल" अपवाद उत्पन्न करता है और 419 स्थिति कोड प्रतिक्रिया देता है।
सीएसआरएफ सुरक्षा से मार्गों को छोड़कर
To इस समस्या को हल करने के बाद, आप सीएसआरएफ टोकन सत्यापन से कुछ मार्गों को बाहर कर सकते हैं। लारवेल 5.5 और इसके बाद के संस्करण में, आप एपीआई मार्गों के लिए web.php के बजाय api.php फ़ाइल का उपयोग कर सकते हैं, और CSRF सत्यापन डिफ़ॉल्ट रूप से सक्षम नहीं है।
यदि आप एपीआई मार्गों के लिए web.php का उपयोग कर रहे हैं, तो आप VerifyCsrfToken मिडलवेयर की $except प्रॉपर्टी में उनके URI जोड़कर उन्हें CSRF टोकन सत्यापन से बाहर कर सकते हैं। उदाहरण के लिए:
namespace App\Http\Middleware;
use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken as BaseVerifier;
class VerifyCsrfToken extends BaseVerifier
{
protected $except = [
'/api/*',
];
}
यह /api से शुरू होने वाले सभी मार्गों को CSRF टोकन सत्यापन से बाहर कर देगा।
गैर-एपीआई मार्गों के लिए वैकल्पिक समाधान
यदि मार्गों को बाहर रखा जा रहा है सीएसआरएफ सुरक्षा उपयुक्त नहीं है, आप रूट समूह के भीतर विशिष्ट तरीकों के लिए सीएसआरएफ सत्यापन को अक्षम कर सकते हैं। उदाहरण के लिए:
Route::group(['middleware' => 'web'], function () {
Route::post('/my-route', 'MyController@store')->withoutMiddleware('verify-csrf-token');
});
यह /my-route के लिए POST अनुरोध के लिए CSRF टोकन सत्यापन को अक्षम कर देगा।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3