কম্পিউটার টিউটোরিয়াল

রেইলসে Clearance দিয়ে নিরাপদ প্রমাণীকরণ: ধাপে ধাপে গাইড

Clearance হলো Thoughtbot tím-এর তৈরি একটি সহজ প্রমাণীকরণ সিস্টেম যা ইমেইল ও পাসওয়ার্ড দিয়ে কাজ করে। এর মতামতসহ ডিফল্ট সেটিংস রয়েছে কিন্তু সহজে ওভাররাইড করা যায়। সিস্টেমটি সক্রিয়ভাবে রক্ষণাবেক্ষণ করা হয়ে থাকে, এবং আপনি GitHub-এ ফলো আপ করতে পারেন।

এই টিউটোরিয়ালে, আপনি দেখবেন কিভাবে Clearance কে একটি রেইলস অ্যাপ্লিকেশনে ইন্টিগ্রেট করতে হয়। আমরা একটি ছোট অ্যাপ্লিকেশন ব্যবহার করব। চলুন শুরু করি!

শুরু করা

আপনি আপনার রেইলস অ্যাপ্লিকেশন জেনারেট করে শুরু করবেন। এই টিউটোরিয়ালের জন্য আমি আমার অ্যাপের নাম tutsplus-clearance রাখছি।

এটি কাজ করবে।

আপনার অ্যাপ্লিকেশন ভালো দেখানোর জন্য বুটস্ট্র্যাপ লাগবে। আপনার Gemfile-এ Bootstrap জেম যোগ করুন।

bundle install চালিয়ে জেম ইনস্টল করুন।

এখন application.scss কে নিচের মতো মডিফাই করুন:

Clearance সেট আপ

আপনার Gemfile খুলুন Clearance জেম যোগ করতে।

এখন জেম ইনস্টল করুন।

এই পয়েন্টে, clearance ইনস্টল করার জন্য জেনারেটর কমান্ড চালান।

এটি আপনার টার্মিনালে কিছু আউটপুট জেনারেট করবে, যা নিচের মতো দেখাবে:

কমান্ড চালালে আপনার অ্যাপ্লিকেশনে কিছু ফাইল জেনারেট হবে। একটি ফাইল হলো clearance.rb, যা আপনি config/initializers ডিরেক্টরিতে পাবেন। একটি User মডেলও জেনারেট হয়েছে, এবং এর সাথে একটি মাইগ্রেশন ফাইলও আছে যা নিচের মতো দেখে:

আউটপুট অনুযায়ী, প্রথমে আপনাকে কনফিগ এনভায়রনমেন্ট এডিট করতে হবে। তার জন্য config/environments/development.rb-এ যান এবং নিচের লাইনটি end ডিলিমিটার-এর ঠিক উপরে যোগ করুন।

পরবর্তী, config/initializers/clearance.rb-এ যান এডিট করতে, এবং সেখানে যেতে ডিফল্ট সেন্ডার ইমেইল অ্যাড্রেস আপনার পছন্দমতো যেকোনো একটি দিয়ে পরিবর্তন করুন। ফাইল খুললে আপনি নিচের কোড দেখবেন।

নিচের কোড স্নিপেট পেস্ট করে ডিফল্ট কনফিগারেশন ওভাররাইড করতে পারেন এবং আপনার প্রয়োজন অনুযায়ী কনফিগার করতে পারেন।

ডাটাবেস মাইгриেট করার কমান্ড চালান।

আপনার PagesController খুলুন এবং একটি index অ্যাকশন যোগ করুন।

এরপর, আপনি যা তৈরি করেছেন সেই index অ্যাকশনের জন্য একটি ভিউ তৈরি করুন।

নিচের কোড স্নিপেট যোগ করুন:

আপনার রাউটস এডিট করুন:

_navigation.html.erb নামে একটি পার্শিয়াল তৈরি করুন layouts ডিরেক্টরির ভিতরে। এটি আপনার অ্যাপ্লিকেশনে নেভিগেশন সংক্রান্ত সব কিছু হ্যান্ডেল করবে।

নিচের কোড পেস্ট করুন এবং সেভ করুন।

সীমাবদ্ধ অ্যাক্সেস

Clearance দিয়ে, আপনি আপনার অ্যাপ্লিকেশনের নির্দিষ্ট পেজগুলোর অ্যাক্সেস সীমাবদ্ধ করতে পারবেন। চলুন দেখি কীভাবে করা যায়।

app/views/pages-এ new অ্যাকশনের জন্য একটি ভিউ তৈরি করুন, ফাইলের নাম হবে new.html.erb। নিচের কোড পেস্ট করুন।

এখন config/routes.rb-এ নিচের লাইনটি যোগ করুন।

শেষে, আপনার PagesController-এ যান এবং নিচের মতো করুন।

উপরের কোডে, আমরা Clearance হেল্পার require_login ব্যবহার করছি new অ্যাকশনে অ্যাক্সেস সীমাবদ্ধ করতে। কীভাবে কাজ করে দেখতে, টার্মিনাল থেকে rails server চালিয়ে রেইলস সার্ভার শুরু করুন। ব্রাউজারে https://localhost:3000/pages/new যান এবং এটি আপনাকে সাইন ইন পেজে রিডাইরেক্ট করবে।

Clearance রাউটিং কনস্ট্রেইন্টও প্রদান করে যা অ্যাক্সেস কন্ট্রোলের জন্য ব্যবহার করা যায়।

উপরের কোডে, প্রমাণীকৃত ব্যবহারকারীদের জন্য একটি আলাদা রুট তৈরি করা হয়েছে।

Clearance ডিফল্ট ওভাররাইড করা

Clearance ব্যবহার শুরু করলে পেছনের দরজায় অনেক কিছু ঘটে যা আপনি দেখতে পান না। এমন সময় আসতে পারে যখন আপনি আপনার অ্যাপ্লিকেশনের স্পেসিফিকেশন অনুযায়ী জিনিসগুলো আলাদা ভাবে কাস্টমাইজ করতে চান। Clearance আপনাকে ডিফল্ট কনফিগারেশন ওভাররাইড করার অনুমতি দেয়।

Clearance রাউটস ওভাররাইড (বা জেনারেট) করতে টার্মিনাল থেকে এই কমান্ড চালান।

আপনার রাউট ফাইল এখন নিচের মতো দেখাবে:

কমান্ডটি আপনার config/initializers/clearance.rb ফাইলে config.routes সেটিংকে false সেট করবে। এর মানে হলো কাস্টম ফাইল যা μόলে জেনারেট হয়েছে সেটি ব্যবহার করা হবে।

ভিউ জেনারেট করতে মডিফিকেশনের জন্য, চালান:

জেনারেট হওয়া কিছু ফাইল:

আপনার টার্মিনালে একটি প্রম্পট আসবে আপনার app/views/layouts/application.html.erb ফাইল ওভাররাইট করতে চাইলে। আপনার পছন্দমতো অপশন বেছে নিন।

লেআউটস

ডিফল্টরূপে, Clearance আপনার অ্যাপ্লিকেশনের ডিফল্ট লেআউট ব্যবহার করে। আপনি যদি চান Clearance তার ভিউ রেন্ডার করার সময় অন্য লেআউট ব্যবহার করুক, তবে সেটি একটি ইনিশিয়ালাইজারে স্পেসিফাই করুন।

হেল্পার মেথডস

Clearance আপনাকে কিছু হেল্পার মেথড দেয় যা আপনি আপনার controllers, views, এবং helpers-এ ব্যবহার করতে পারেন। এই মেথডগুলোর মধ্যে আছে signed_in?, signed_out?, এবং current_user। উদাহরণস্বরূপ:

উপসংহার

প্রমাণীকরণের ক্ষেত্রে Clearance আপনাকে অনেক কিছু দিতে পারে, তাই আপনার পরবর্তী প্রজেক্টে এটি টেস্ট করে দেখুন। GitHub পেজ চেক করুন আরও জানতে।

  1. রুবি অন রেইলসে টেইলউইন্ড CSS যোগ করা: একটি প্র্যাকটিক্যাল ধাপে ধাপে গাইড

  2. রুবি অন রেইলস AWS Lambda-তে ডিপ্লয়: ধাপে ধাপে গাইড

  3. রেইলস সিকিউরিটি: অথেন্টিকেশন ভালনারেবিলিটি vastaan প্রতিরক্ষা

  4. Angular এবং Rails 5 ইন্টিগ্রেশন: একটি স্মুথ ফুল-স্ট্যাক পদ্ধতি