ক্রস-সাইট স্ক্রিপ্টিং সমস্যা
আপনি ডোমেনগুলির মধ্যে ডাব্লুপি প্রমাণীকরণ কুকিজ স্থানান্তর করতে পারবেন না। আপনি অন্য WP ইনস্টলেশন প্রোগ্রামে লগ ইন করার জন্য প্লেইন টেক্সট পাসওয়ার্ড সংরক্ষণ করতে চান না। সুতরাং, আপনার ব্যবহারকারীদের ওয়ার্ডপ্রেসে লগইন করতে হবে এবং তারপরে তৃতীয় পক্ষের সাইট থেকে একটি এপিআই এন্ডপয়েন্টের মাধ্যমে তাদের লগইন স্থিতি অ্যাক্সেস করতে হবে। এটি ওয়ার্ডপ্রেসকে সমস্ত প্রমাণীকরণ হ্যান্ডেল করতে দেয়। এটি বেশ সুরক্ষিত কারণ কোনও তৃতীয় পক্ষের ডেটা পরিবেশন করার জন্য এপিআই এন্ডপয়েন্টটির জন্য ব্যবহারকারীকে শারীরিকভাবে ডাব্লুপি পার্শ্বে লগইন করতে হবে।
একটি এপিআই এন্ডপয়েন্ট পয়েন্ট তৈরি করুন
আমি এই নিবন্ধটি এখানে লিখেছিলাম: চেক করুন http://coderrr.com/create-an-api-endPoint-in-wordpress/
এছাড়াও আপনি কোডটি এখানে প্রদর্শন করতে পারবেন: https://gist.github.com/2982319
আপনার নিজের অ্যাপ্লিকেশন প্রয়োজনীয়তার জন্য আপনার যুক্তিটি বের করতে হবে, তবে এটি আপনাকে এমন একটি এন্ডপয়েন্ট তৈরি করতে সহায়তা করবে যেখানে আপনি ওয়ার্ডপ্রেস দিক থেকে যা চান তা পরিবেশন করতে পারবেন।
যেহেতু আপনি ওয়ার্ডপ্রেসকে প্রমাণীকরণ সাইট হিসাবে ব্যবহার করছেন তাই আপনি is_user_logged_in () এর মতো একটি চেক ব্যবহার করতে পারেন। যদি তারা লগ ইন করে থাকে তবে কোনও ব্যবহারকারীর তৃতীয় পক্ষের কাছে তাদের প্রয়োজনীয় তথ্যের সাথে অবজেক্টটি ফিরিয়ে দিন।
তৃতীয় পক্ষ থেকে লগ ইন করা
তৃতীয় পক্ষ থেকে, তারা আপনার লগইন পৃষ্ঠায় লিড করতে পারে নিরবিচ্ছিন্ন অভিজ্ঞতার জন্য redirect_to ক্যোয়ারী ভার ব্যবহার করে। একবার লগ ইন হয়ে গেলে এটি তাদের তৃতীয় পক্ষের সাইটে ফেরত পাঠাবে।
http://sub.yourdomain.com/wp-login.php?redirect_to=http%3A%2F%2Fwww.third-party-domain.com
রিমোট লগইন
আপনার যদি কোনও তৃতীয় পক্ষের সাইট থেকে ব্যবহারকারীদের ওয়ার্ডপ্রেসে লগইন করতে হয় তবে আপনি এই সাইটে তালিকাভুক্ত কয়েকটি সাধারণ ডাব্লুপি ফাংশন ব্যবহার করতে পারেন: http://kuttler.eu/code/log-in-a-wordpress-user-programmatically/
জিনিসগুলিকে সুরক্ষিত রাখতে আপনার অবশ্যই একটি ভাগ করা গোপনীয়তা এবং সময় ভিত্তিক হ্যাশগুলি তৈরি করা দরকার। মূলত, এটি দেখতে কেমন হবে তা এখানে:
তৃতীয় পক্ষ একটি টাইমস্ট্যাম্প এবং একটি ভাগ করা গোপনের দ্বারা উত্পাদিত একটি টোকেন সহ অনুরোধ পাঠায়:
$shared_secret = 'foobar'; //do not send this to the API endpoint
$timestamp = time();
$token = md5($shared_secret.$time_stamp);
ওয়ার্ডপ্রেস ইনস্টলেশন অনুরোধটি গ্রহণ করে:
$shared_secret = 'foobar';
$timestamp = esc_attr($_GET['timestamp']);
if((time() - $timestamp) > 30) # Threshold is 30 seconds
//do something here - TOKEN expired!
$token = md5($share_secret.$timestamp);
$token_to_check = esc_attr($_GET);
if($token == $token_to_check)
//authenticated!