क्यों JWT प्रमाणीकरण
मैं एक ऐसी साइट बना रहा हूं जो Wordpress को बैक-एंड के रूप में उपयोग करता है, और फ्रंट-एंड के रूप में एक React + Redux ऐप है, इसलिए मैं Wordpress API के लिए अनुरोध करके सभी सामग्री को फ्रंट-एंड में खींच रहा हूं। कुछ अनुरोध (मुख्य रूप से, POST अनुरोध) को प्रमाणित किया जाना चाहिए, जो कि जब मैं JWT में आया था।
हमें क्या चाहिये
वर्डप्रेस के साथ जेडब्ल्यूटी प्रमाणीकरण का उपयोग करने के लिए, हमें सबसे पहले डब्ल्यूपी रीस्ट एपीआई प्लगइन के लिए जेडब्ल्यूटी प्रमाणीकरण स्थापित करना होगा । जैसा कि प्लगइन के निर्देशों में बताया गया है, हमें कुछ कोर वर्डप्रेस फ़ाइलों को संशोधित करने की भी आवश्यकता है। विशेष रूप से:
Wordpress स्थापना के रूट फ़ोल्डर में शामिल .htaccess फ़ाइल में, हमें निम्नलिखित पंक्तियों को जोड़ने की आवश्यकता है:
RewriteEngine on
RewriteCond %{HTTP:Authorization} ^(.*)
RewriteRule ^(.*) - [E=HTTP_AUTHORIZATION:%1]
Wp-config.php फ़ाइल में, वर्डप्रेस इंस्टॉलेशन के रूट फ़ोल्डर में भी शामिल है, हमें इन पंक्तियों को जोड़ने की आवश्यकता है:
define('JWT_AUTH_SECRET_KEY', 'your-top-secret-key'); // Replace 'your-top-secret-key' with an actual secret key.
define('JWT_AUTH_CORS_ENABLE', true);
परीक्षण यह देखने के लिए कि क्या JWT उपलब्ध है
यह सत्यापित करने के लिए कि हम अब JWT का उपयोग कर सकते हैं, पोस्टमैन को फायर कर सकते हैं और Wordpress API के डिफ़ॉल्ट 'इंडेक्स' के लिए अनुरोध कर सकते हैं:
http://example.com/wp-json/
कुछ नए एंडपॉइंट्स, जैसे /jwt-auth/v1
और /jwt-auth/v1/token
एपीआई में जोड़े जाने चाहिए थे। यदि आप उन्हें उपरोक्त अनुरोध के जवाब में पा सकते हैं, तो इसका मतलब है कि JWT अब उपलब्ध है।
JWT टोकन प्राप्त करना
आइए फिलहाल पोस्टमैन में बने रहें, और हम Wordpress API के लिए एक टोकन का अनुरोध करें:
http://example.com/wp-json/jwt-auth/v1/token
प्रतिक्रिया में JWT टोकन होगा, जो एक एन्क्रिप्टेड कुंजी है जो कुछ इस तरह दिखता है:
eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOlwvXC9sb2NhbGhvc3Q6ODg4OFwvZm90b3Jvb20tbmV4dCIsImlhdCI6MTUyMjU5NzQ1MiwibmJmIjoxNTIyNTk3NDUyLCJleHAiOjE1MjMyMDIyNTIsImRhdGEiOnsidXNlciI6eyJpZCI6IjEifX19.hxaaT9iowAX1Xf8RUM42OwbP7QgRNxux8eTtKhWvEUM
प्रमाणित अनुरोध करना
आइए JWT के साथ एक प्रमाणित अनुरोध के उदाहरण के रूप में 300 की आईडी के साथ एक पद का शीर्षक बदलने का प्रयास करें।
पोस्टमैन में, विधि के रूप में POST चुनें और निम्नलिखित समापन बिंदु टाइप करें:
http://example.com/wp-json/wp/v2/posts/300
प्राधिकरण टैब में कोई प्रामाणिक न चुनें, और हेडर टैब में निम्नलिखित जोड़ें:
'Content-type': 'application/json',
'Authorization': 'Bearer jwtToken' // Replace jwtToken with the actual token (the encrypted key above)
अंत में, बॉडी टैब में, कच्चे और JSON (एप्लिकेशन / json) विकल्पों का चयन करें, फिर विकल्पों के ठीक नीचे संपादक में निम्न प्रकार हैं:
{ "title": "YES! Authenticated requests with JWT work" }
अब आप SEND को हिट कर सकते हैं। पोस्ट के बारे में सभी डेटा के साथ प्रतिक्रिया टैब में देखें जो हमने अनुरोध किया था: शीर्षक कुंजी के लिए मूल्य अब होना चाहिएYES! Authenticated requests with JWT work