এটি আসলে কোনও প্রশ্ন নয় তবে কীভাবে জেডাব্লুটিটি ব্যবহার করে ওয়ার্ডপ্রেস এপিআই-তে প্রামাণিত অনুরোধগুলি করবেন তার গাইড a আমি এটি আমার এবং তাদের জন্য যারা একই বিষয়টির জন্য কিছু সহায়তার প্রয়োজন হতে পারে তাদের একটি অনুস্মারক হিসাবে লিখছি।
এটি আসলে কোনও প্রশ্ন নয় তবে কীভাবে জেডাব্লুটিটি ব্যবহার করে ওয়ার্ডপ্রেস এপিআই-তে প্রামাণিত অনুরোধগুলি করবেন তার গাইড a আমি এটি আমার এবং তাদের জন্য যারা একই বিষয়টির জন্য কিছু সহায়তার প্রয়োজন হতে পারে তাদের একটি অনুস্মারক হিসাবে লিখছি।
উত্তর:
কেন জেডাব্লুটি প্রমাণীকরণ
আমি এমন একটি সাইট তৈরি করছি যা ওয়ার্ডপ্রেসটিকে ব্যাক-এন্ড হিসাবে এবং ফ্রন্ট-এন্ড হিসাবে একটি প্রতিক্রিয়া + রেডাক্স অ্যাপ্লিকেশন ব্যবহার করছি, তাই আমি ওয়ার্ডপ্রেস API তে অনুরোধ করে ফ্রন্ট-এন্ডে সমস্ত সামগ্রী টানছি। কিছু অনুরোধ (প্রধানত, POST অনুরোধগুলি) অবশ্যই প্রমানিত হতে হবে, যা আমি যখন JWT জুড়ে এসেছি।
আমাদের কি দরকার
ওয়ার্ডপ্রেসের সাথে জেডাব্লুটি প্রমাণীকরণ ব্যবহার করতে, আমাদের প্রথমে ডব্লিউপি আরএসটি এপিআই প্লাগইনের জন্য জেডব্লিউটি প্রমাণীকরণ ইনস্টল করতে হবে । প্লাগইন এর নির্দেশাবলী হিসাবে ব্যাখ্যা করা হয়েছে, আমাদের কয়েকটি মূল ওয়ার্ডপ্রেস ফাইলও পরিবর্তন করতে হবে। নির্দিষ্টভাবে:
ওয়ার্ডপ্রেস ইনস্টলেশনের মূল ফোল্ডারে অন্তর্ভুক্ত .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 ব্যবহার করতে পারি তা যাচাই করতে, পোস্টম্যান ফায়ার আপ করতে এবং ওয়ার্ডপ্রেস এপিআইয়ের ডিফল্ট 'সূচক' তে একটি অনুরোধ জানাতে পারি:
http://example.com/wp-json/
কয়েকটি নতুন পয়েন্ট, যেমন /jwt-auth/v1
এবং এপিআইতে /jwt-auth/v1/token
যুক্ত করা উচিত ছিল। আপনি যদি উপরের অনুরোধের প্রতিক্রিয়াতে সেগুলি খুঁজে পেতে পারেন তবে এর অর্থ জেডাব্লুটিটি এখন উপলব্ধ।
জেডাব্লুটি টোকেন পাচ্ছেন
আসুন এই মুহুর্তের জন্য পোস্টম্যানে থাকুন এবং আসুন আমরা ওয়ার্ডপ্রেস এপিআই-তে একটি টোকেনের অনুরোধ করব:
http://example.com/wp-json/jwt-auth/v1/token
প্রতিক্রিয়াতে জেডাব্লুটি টোকেন থাকবে, যা একটি এনক্রিপ্ট করা কী যা দেখতে এরকম কিছু দেখাচ্ছে:
eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOlwvXC9sb2NhbGhvc3Q6ODg4OFwvZm90b3Jvb20tbmV4dCIsImlhdCI6MTUyMjU5NzQ1MiwibmJmIjoxNTIyNTk3NDUyLCJleHAiOjE1MjMyMDIyNTIsImRhdGEiOnsidXNlciI6eyJpZCI6IjEifX19.hxaaT9iowAX1Xf8RUM42OwbP7QgRNxux8eTtKhWvEUM
একটি সত্যায়িত অনুরোধ করা
আসুন JWT- এর সাথে একটি অনুমোদনের অনুরোধের উদাহরণ হিসাবে 300 এর ID সহ একটি পোস্টের শিরোনাম পরিবর্তন করার চেষ্টা করি।
পোস্টম্যানে, পদ্ধতি হিসাবে 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)
অবশেষে, বডি ট্যাবে, কাঁচা এবং জেএসএন (অ্যাপ্লিকেশন / জসন) বিকল্পগুলি নির্বাচন করুন, তারপরে অপশনগুলির ঠিক নীচে সম্পাদকটিতে নিম্নলিখিত টাইপ করুন:
{ "title": "YES! Authenticated requests with JWT work" }
এখন আপনি SEND এ আঘাত করতে পারেন। আমাদের অনুরোধ করা পোস্টটি সম্পর্কিত সমস্ত ডেটা সহ প্রতিক্রিয়া ট্যাবটি দেখুন: শিরোনাম কীটির মান এখন হওয়া উচিতYES! Authenticated requests with JWT work
register_rest_route( 'jwt-auth/v1', 'your_custom_endpoint ...
। Jwt-auth / এর অধীনে যে কোনও কিছুর অনুমোদনের প্রয়োজন হবে
@ গ্রাজিয়ানোদেবের উত্তর পরিপূরক করা, আপনি এইভাবে সিআরএল ব্যবহার করে আপনার অনুমোদনের টোকেন পাবেন:
/**
* Generate a JWT token for future API calls to WordPress
*/
private function getToken() {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,'https://site.localhost/wp-json/jwt-auth/v1/token');
curl_setopt($ch, CURLOPT_POST, 1);
# Admin credentials here
curl_setopt($ch, CURLOPT_POSTFIELDS, "username=admin&password=Str0ngPass");
// receive server response ...
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$server_output = curl_exec ($ch);
if ($server_output === false) {
die('Error getting JWT token on WordPress for API integration.');
}
$server_output = json_decode($server_output);
if ($server_output === null && json_last_error() !== JSON_ERROR_NONE) {
die('Invalid response getting JWT token on WordPress for API integration.');
}
if (!empty($server_output->token)) {
$this->token = $server_output->token; # Token is here
curl_close ($ch);
return true;
} else {
die('Invalid response getting JWT token on WordPress for API integration.');
}
return false;
}
এর পরে, শিরোনাম দিয়ে আপনার অনুরোধগুলি প্রেরণ করুন: "অনুমোদন: বহনকারী $ টোকেন"
যেখানে $ টোকেনটি টোকনটি উপরের getToken () ফাংশন দ্বারা ফিরে আসে।
কেবলমাত্র উপরের টোকেনের সাহায্যে API টি অ্যাক্সেসকে সীমাবদ্ধ করতে আমি ব্যক্তিগতভাবে " REST API অক্ষম করুন এবং JWT / OAuth প্রমাণীকরণ প্রয়োজন " প্লাগইনটি ব্যক্তিগতভাবে ব্যবহার করি ।