বাহ্যিক 'ডিরেক্টরি পরিষেবা' এর সাথে এসএসও / প্রমাণীকরণের একীকরণ


15

আমি একজন ক্লায়েন্টের জন্য প্রোটোটাইপটিতে কাজ শুরু করতে চলেছি - এবং প্রয়োজনীয় বৈশিষ্ট্যগুলির মধ্যে একটি হ'ল ইন-হাউস ব্যবহারকারী প্রমাণীকরণ / নিবন্ধকরণ সিস্টেমের সাথে সংহতকরণ।

এই সিস্টেমটি অনুমোদনের ব্যবহারকারীর ডাটাবেস হিসাবে কাজ করবে এবং নতুন ব্যবহারকারী তৈরি করতে এবং বৈধ ব্যবহারকারীদের অনুমোদনের জন্য একটি RESTful ইন্টারফেস সরবরাহ করবে।

  1. আমার ডব্লিউপিতে নতুন ব্যবহারকারী তৈরি করতে সক্ষম হওয়া প্রয়োজন এবং সেই প্রক্রিয়াটির অংশ হিসাবে সেই ব্যবহারকারী তৈরি / বৈধ করার জন্য বাহ্যিক প্রমাণীকরণ এপিআইতে কল করা উচিত।

  2. যে কোনও বৈধ ব্যবহারকারী, তবে ডব্লিউপি-তে পরিচিত নন, তিনি ডব্লিউপি সাইটে নিজেরাই নিবন্ধভুক্ত না হয়ে মন্তব্য করতে লগইন করতে পারবেন।

  3. সামগ্রিক ওয়েবসাইটে লগইন করা কোনও ব্যক্তিরও স্বয়ংক্রিয়ভাবে ওয়ার্ডপ্রেসে লগ ইন করা উচিত।

আমি ভাবছি নীচের দিকে যাওয়ার উপায়।

  • (1) - এর জন্য কি কোনও নিবন্ধকরণ হুক ব্যবহার করতে পারি?

  • (২) - আমি ধরে নিচ্ছি যে আমি প্রমাণীকরণকারী ফিল্টারটি হুক করেছি - উদাহরণস্বরূপ যখন কেউ লগইন করার চেষ্টা করবে তখন আমি সেটিকে ফাঁদে ফেললাম, বাহ্যিক সিস্টেমে কল করব এবং তারপরে ডাব্লুপি লগইন প্রক্রিয়া করি বা নিবন্ধকরণ প্রক্রিয়াতে পুনর্নির্দেশ করি যেখানে ( 1) oer লাগে।

  • (3) - প্রধান সাইটের দ্বারা নির্ধারিত লগইন কুকি পড়ুন এবং (2) এর সাথে এগিয়ে যান?

আমার ধারণা আমি ব্যবহারকারী এবং ব্যবহারকারীর টেবিলের মধ্যে একটি রেকর্ডও সন্নিবেশ করতে হবে।

সুতরাং, উপরোক্তগুলি কী বোঝায় - আমি কি কিছু সম্পর্কে ভাবি না? এটিকে সাহায্য করার জন্য যে কোনও ভাল সংস্থান পেয়েছে (@ হ্যাক্রে - আমি দেখেছি আপনি এটিতে কিছু কাজ করেছেন !!)!

হালনাগাদ

সুতরাং আমি এখনও এইটার বিরুদ্ধে আমার মাথাটি সামান্য চাপ দিচ্ছি, মূলত আমি প্রমাণীকরণকারক ফিল্টারটি আটকানোর চেষ্টা করছি এবং এটি ব্যবহার করে:

  1. 'মাস্টার' সাইটের জন্য কোনও লগইন কুকি সেট করা আছে কিনা তা যাচাই করুন এবং যদি তা হয় তবে তাদের প্রমাণীকরণ এপিআইয়ের বিরুদ্ধে পুনরায় নামকরণ করুন এবং যদি বৈধ wp_signon()হয় তবে মাস্টার সাইট কুকিতে থাকা তথ্য ব্যবহার করে কোনও ডব্লিউপি লগইনকে বাধ্য করুন (ইমেল এবং হ্যাশ পাসওয়ার্ড) ডব্লিউপি এর শংসাপত্র হিসাবে
  2. যদি কুকিটি সেট না করা থাকে তবে মাস্টার সাইট লগইন পৃষ্ঠায় পুনর্নির্দেশ করুন এবং লগইন / সাইনআপ করুন তারপর পদক্ষেপ 1 এ ফিরে যান
  3. যদি কোনও ডাব্লুপি ব্যবহারকারী না থাকে যখন কোনও সত্যায়িত মাস্টার সাইট ব্যবহারকারী উপস্থিত থাকে, এটি তৈরি করুন এবং তারপরে একটি 'স্বচ্ছ' সাইনন (যেমন ব্যবহারকারী কোনও ডব্লিউপি লগইন ফর্মটি দেখতে পান না)

মূলত, আমি ডাব্লুপি লগইন ফর্মটি সম্পূর্ণরূপে সেই ব্যবহারকারীদের জন্য গোপন করতে চাই যারা মূলত মন্তব্য করতে চলেছে, এবং পরে লেখক এবং অ্যাডমিনকে এটিতে সরাসরি প্রবেশ করার অনুমতি দেওয়ার একটি উপায় সন্ধান করতে পারে।

এটি মোটামুটি আস্তে চলছে, আমি এখানে যা কিছু সাহায্য করতে পারি তা এখানে:

  • সত্যায়িত ফিল্টার কি সঠিকভাবে ব্যবহার করা যায়? আমি যে পরিস্থিতিতে প্রত্যাশা করব সে ক্ষেত্রে এটি কল হবে বলে মনে হয় না - যেমন মেটা উইজেট প্রমাণীকরণকারী হুক ফায়ারিং ছাড়াই লগ ইন / লগ আউট লিঙ্ক প্রদর্শন করে

  • আমি wp_signon()কোনও WP_Userঅবজেক্ট ফিরিয়ে আনতে পারি (সাফল্যের ইঙ্গিত), তবে এটি লগইন থাকা অবস্থায় প্রভাবিত করে না - অর্থাত্ মেটা উইজেটটি সতেজ হওয়ার পরেও "লগইন" প্রদর্শিত হবে show

কৃতজ্ঞভাবে প্রাপ্ত কোনও সহায়তা :)


সম্ভবত এটি একটি পৃথক প্রশ্ন করা উচিত?
আনু

ওহ, এবং আমি জানি না এটি এমনকি উল্লেখ করার অনুমতি দেয় কিনা, তবে আমি আনন্দের সাথে এর জন্য অর্ধেক দিন বা তার বেশি সাহায্যের জন্য অর্থ প্রদান করব - আমার প্রোফাইলে যোগাযোগের বিবরণ।
আনু

উত্তর:


12

ঠিক আছে, যে পদ্ধতিটি আমার পক্ষে কাজ করছে তা নিম্নরূপ:

  1. ধরে নিন যে প্রধান সাইট ব্যবহারকারীর ডাটাবেসটি অনুমোদিত। মূল সাইট লগইন কুকিতে একটি আইডি এবং সাইটের পাসওয়ার্ডের একটি হ্যাশ থাকে।

  2. মূল সাইট থেকে কুকি পান এবং মূল সাইটের প্রমাণীকরণ API এর বিরুদ্ধে এটি পুনরায়করণ করুন

  3. বৈধ হলে, 'user_login'ডাব্লুপি'র মান হিসাবে প্রত্যাবর্তন মান থেকে ইমেল ঠিকানা এবং ডাব্লুপি পাসওয়ার্ড হিসাবে হ্যাশ সাইটের পাসওয়ার্ড ব্যবহার করুন।

  4. যদি এই ব্যবহারকারীর দ্বারা WP তে বিদ্যমান থাকে তবে পরীক্ষা করুন wp_authenticate('user_login', 'user_pass')। এটি WP_Userসাফল্যের উপর একটি বস্তু, বা WP_Errorব্যর্থতার উপর একটি বস্তু দেয়।

  5. যদি WP_Error/is_wp_error(), তবে wp_update_user()কোনও ব্যবহারকারী তৈরি করতে ব্যবহার করুন (বা পরিবর্তিত পাসওয়ার্ড সহ কোনও ব্যবহারকারী আপডেট করুন)।

  6. মাধ্যমে লগইন করুন wp_set_current_user(), wp_set_auth_cookie()এবংdo_action('wp_login, id)

(এই সমস্ত ক্রিয়াকলাপের সাথে সংযুক্ত কোনও ফাংশনে রয়েছে 'init')

মনে হচ্ছে এটি কাজ করছে - WP- র সাথে অজানা বৈধ সাইটের ব্যবহারকারীরা স্বয়ংক্রিয়ভাবে তৈরি হয়ে গেছে। পাসওয়ার্ড পরিবর্তনগুলি এর জন্য প্রস্তুত করা হয় এবং যদি সাইট কুকি সেট করা থাকে এবং ডাব্লুপি ব্যবহারকারী উপস্থিত থাকে তবে এসএসও স্বয়ংক্রিয় এবং বেশ বিরামবিহীন।


1
+1 দুর্দান্ত বর্ণনা / উত্তর। আশা করি আপনি একদিন আরও কিছু বিশদ দেখানোর জন্য একদিন সময় পেয়েছেন। আমাদের অন্যদের বেশিরভাগ বিচার / ত্রুটি এড়াতে সহায়তা করবে;)
কায়সার

1
এটি ঠিক আমি যা খুঁজছি, আপনি কি আরও কিছুটা ব্যাখ্যা করতে পারবেন? বিশেষভাবে 1,2,3 পদক্ষেপগুলি আমার কাছে খুব পরিষ্কার নয়। ধন্যবাদ !!
chifliiiii

3

পুরো প্রমাণীকরণ সিস্টেমটি প্লাগযোগ্য। সিস্টেমটি কীভাবে ওভাররাইড করা যায় সে সম্পর্কে ধারণা পেতে আমি বিদ্যমান প্লাগইনগুলির দিকে তাকানোর পরামর্শ দিই। সম্ভবত কিছু এলডিএপি প্লাগইন দেখে ?


হ্যাঁ এবং স্পর্শকাতর হওয়া অর্থহীন, এটি সুস্পষ্ট !!
আনু

ব্যবহারকারীর সাইন-অন স্থিতি প্রতিফলিত করতে সহায়তা করতে পারে এমন কিছু তথ্যের জন্য, এই অন্য প্রশ্নের আমার উত্তরটি দেখুন: wordpress.stackexchange.com/questions/8998/…
ডগল ক্যাম্পবেল

1

বেশ কয়েকটি ব্যবহারকারীর সাথে সম্পর্কিত ফাংশনটি শর্তাধীন হিসাবে সংজ্ঞায়িত করা !function_exists()হয় wp-includes/pluggable.phpএবং আপনার নিজের সংস্করণগুলিতে ওভাররাইড করা সহজ।


1

ওয়ার্ডপ্রেসে সিঙ্গল-সাইন-অন সক্ষম করতে আমাকে 18+ ঘন্টা লড়াই করতে হয়েছিল তবে আপনাকে সম্ভবত কয়েক মিনিট সময় নিতে পারে:

মূলত, আপনি ব্যবহার করতে চাইবেন https://wordpress.org/plugins/wp-force-login/ এবং একটি পরিমার্জিত সংস্করণ https://as.wordpress.org/plugins/jwt-authenticator/ এবং তারপর প্রমাণীকরণ তৈরি আপনার মূল সাইটে সুরক্ষিত শেষ পয়েন্ট যা জেডাব্লুটিটি (জেএসএন ওয়েব টোকেন) উত্পন্ন করে এবং আপনার ওয়ার্ডপ্রেস সাইটের বিশেষ ইউআরএলে পুনঃনির্দেশ করে।

এখানে সম্পূর্ণ কোড দেখুন ।


আপনার উত্তরের জন্য ধন্যবাদ. লিঙ্কগুলি কেবলমাত্র উত্তরগুলি নিরুৎসাহিত করা হয় কারণ লিঙ্কগুলি নিখোঁজ হতে পারে এবং আপনাকে উত্তর অকেজো করে দেয়। এখানে প্রাসঙ্গিক বিট অন্তর্ভুক্ত করা ভাল।
কায়সার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.