কম্পিউটার

ক্লিয়ারেন্স ব্যবহার করে রেলে প্রমাণীকরণ

ক্লিয়ারেন্স হল ইমেল এবং পাসওয়ার্ড সহ একটি সহজ প্রমাণীকরণ সিস্টেম যা থটবট এ টিম দ্বারা নির্মিত। এটিতে মতামতযুক্ত ডিফল্ট রয়েছে তবে এটি ওভাররাইড করা সহজ হওয়ার উদ্দেশ্যে। সিস্টেম সক্রিয়ভাবে রক্ষণাবেক্ষণ করা হয়, এবং আপনি GitHub অনুসরণ করতে পারেন.

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

শুরু করা

আপনি আপনার রেল অ্যাপ্লিকেশন তৈরি করে শুরু করবেন। এই টিউটোরিয়ালের উদ্দেশ্যে, আমি আমার নাম দিব tutsplus-clearance .

rails নতুন tutsplus-ক্লিয়ারেন্স -T

এটা যাদু করবে।

আপনার অ্যাপ্লিকেশনটিকে সুন্দর দেখানোর জন্য আপনাকে বুটস্ট্র্যাপের প্রয়োজন হবে। আপনার Gemfile-এ বুটস্ট্র্যাপ রত্ন যোগ করুন .

#Gemfile...gem 'bootstrap-sass'

bundle install চালিয়ে রত্নটি ইনস্টল করুন .

এখন application সংশোধন করুন . scss এই মত দেখতে:

#app/assets/stylesheets/application.scss@import 'bootstrap-sprockets';@import 'bootstrap';

ক্লিয়ারেন্স সেটআপ

আপনার Gemfile খুলুন ক্লিয়ারেন্স রত্ন যোগ করতে।

#Gemfilegem 'ক্লিয়ারেন্স'

এখন রত্নটি ইনস্টল করুন।

bundle install

এই সময়ে, clearance ইনস্টল করতে জেনারেটর কমান্ডটি চালান .

rails generate clearance:install

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

config/initializers/clearance.rb তৈরি করুন app/controllers/application_controller.rb তৈরি করুন app/models/user.rb তৈরি করুন db/migrate/20161115101323_create_users.rb*************** ****************************************************** ************** পরবর্তী ধাপঃ ১. ইমেলগুলিতে সম্পূর্ণ URL তৈরি করতে মেইলারটিকে কনফিগার করুন:# config/environments/{development,test}.rb config.action_mailer.default_url_options ={ host:'localhost:3000' } উৎপাদনে এটি আপনার অ্যাপের ডোমেন নাম হওয়া উচিত।2। ব্যবহারকারীর সেশন এবং ফ্ল্যাশগুলি প্রদর্শন করুন। উদাহরণস্বরূপ, আপনার অ্যাপ্লিকেশন লেআউটে:<% if signed_in? %> এইভাবে সাইন ইন করেছেন:<%=current_user.email %> <%=button_to 'সাইন আউট', sign_out_path, পদ্ধতি::delete %> <% else %> <%=link_to 'সাইন ইন', sign_in_path %> <% end %> 
<% flash.each do |key, value| %>
<%=মান %>
<% end %>
3. মাইগ্রেট:rake db:migrate******************************************** ***********************************

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

class CreateUsers  

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

... config.action_mailer.default_url_options ={ হোস্ট:'localhost:3000' }শেষ

এরপরে, config/initializers/clearance.rb-এ নেভিগেট করুন এটি সম্পাদনা করতে, এবং যখন আপনি সেখানে থাকবেন, প্রেরকের ইমেল ঠিকানাটিকে ডিফল্ট থেকে আপনার পছন্দের যেকোনো একটিতে পরিবর্তন করুন৷ আপনি যখন ফাইলটি খুলবেন তখন আপনি এটি দেখতে পাবেন৷

#config/initializers/clearance.rbClearance.configure do |config| config.mailer_sender ="reply@example.com"end

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

#config/initializers/clearance.rbClearance.configure do |config| config.allow_sign_up =true config.cookie_domain =".example.com" config.cookie_expiration =lambda { |কুকিজ| 1.year.from_now.utc } config.cookie_name ="remember_token" config.cookie_path ="/" config.routes =true config.httponly =false config.mailer_sender ="reply@example.com" config.password_strategy =ক্লিয়ারেন্স::পাসওয়ার্ড কৌশল::BCrypt config.redirect_url ="/" config.secure_cookie =false config.sign_in_guards =[] config.user_model =Userend

আপনার ডাটাবেস স্থানান্তর করতে কমান্ডটি চালান৷

rake db:migrate

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

#app/controllers/pages_controller.rbclass PagesController  

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

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

#app/views/pages/index.html.erb

Tutsplus ক্লিয়ারেন্স

আমাদের ক্লিয়ারেন্স পৃষ্ঠায় স্বাগতম।

এতে আপনার রুট সম্পাদনা করুন:

#config/routes.rbRails.application.routes.draw রুট করতে:"pages#index"end

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

নিম্নলিখিত কোড পেস্ট করুন এবং সংরক্ষণ করুন।

#app/views/layouts/_navigation.html.erb
<% flash.each do |কী, মান| %>
<%=মান %>
<% end %>

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

ক্লিয়ারেন্সের মাধ্যমে, আপনি আপনার অ্যাপ্লিকেশনে আপনার পছন্দের নির্দিষ্ট পৃষ্ঠাগুলিতে সীমাবদ্ধ অ্যাক্সেস তৈরি করতে সক্ষম হবেন। দেখা যাক কিভাবে করা হয়।

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

#app/views/pages/new.html.erb

সীমাবদ্ধ পৃষ্ঠা

এই পৃষ্ঠাটি প্রমাণীকৃত ব্যবহারকারীদের জন্য সীমাবদ্ধ, আপনি যদি এটি দেখতে পান তবে তার মানে আপনি একজন সুপারস্টার!

এখন আপনাকে config/routes.rb-এ নীচের লাইন যোগ করতে হবে .

#config/routes.rb... সম্পদ :পৃষ্ঠা, শুধুমাত্র::new...

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

#apps/controllers/pages_controller.rbclass PagesController  

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

ক্লিয়ারেন্স রাউটিং সীমাবদ্ধতাও সরবরাহ করে যা অ্যাক্সেস নিয়ন্ত্রণ করতে ব্যবহার করা যেতে পারে।

#config/routes.rbRails.application.routes.draw সীমাবদ্ধতা ক্লিয়ারেন্স::Constraints::SignedOut.new রুট করতে:'pages#index' শেষ সীমাবদ্ধতা ক্লিয়ারেন্স::Constraints::SignedIn.new রুট করতে:"পৃষ্ঠা#নতুন', যেমন::signed_in_root endend

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

অভাররাইডিং ক্লিয়ারেন্স ডিফল্ট

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

ক্লিয়ারেন্স রুট ওভাররাইড (বা জেনারেট) করতে, আপনার টার্মিনাল থেকে এই কমান্ডটি চালান।

rails generate clearance:routes

আপনার রুট ফাইল এখন এই মত দেখতে হবে:

#config/routes.rbRails.application.routes.draw ডো রিসোর্স :পাসওয়ার্ড, কন্ট্রোলার:"ক্লিয়ারেন্স/পাসওয়ার্ড", শুধুমাত্র:[:create, :new] রিসোর্স :সেশন, কন্ট্রোলার:"ক্লিয়ারেন্স/সেশন", শুধুমাত্র :[:create] রিসোর্স :ব্যবহারকারী, কন্ট্রোলার:"ক্লিয়ারেন্স/ব্যবহারকারী", শুধুমাত্র:[:create] ডু রিসোর্স :পাসওয়ার্ড, কন্ট্রোলার:"ক্লিয়ারেন্স/পাসওয়ার্ড", শুধুমাত্র:[:create, :edit, :update] শেষ "/sign_in" => "ক্লিয়ারেন্স/সেশনস#নতুন", যেমন:"সাইন_ইন" ডিলিট"/sign_out" => "ক্লিয়ারেন্স/সেশনস#ডিস্ট্রো", যেমন:"সাইন_আউট" পান "/sign_up" => "ক্লিয়ারেন্স/ব্যবহারকারীরা #new", as:"sign_up" root to:"pages#index" সম্পদ :pages, only::newend

কমান্ডটি config.routesও সেট করবে আপনার config/initializers/clearance.rb এ মিথ্যা সেটিং ফাইল এর মানে হল যে কাস্টম ফাইলটি তৈরি করা হয়েছে তা ব্যবহার করা হবে৷

পরিবর্তনের জন্য ভিউ জেনারেট করতে, চালান:

rails generate clearance:views

কিছু ফাইল যা তৈরি করা হবে তার মধ্যে রয়েছে:

 app/views/passwords/create.html.erb app/views/passwords/edit.html.erb app/views/passwords/new.html.erb app/views/sessions/_form.html.erb app/views /sessions/new.html.erb app/views/users/_form.html.erb app/views/users/new.html.erb config/locales/clearance.en.yml

আপনি আপনার টার্মিনালে আপনার app/views/layouts/application.html.erb ওভাররাইট করার জন্য একটি প্রম্পট দেখতে পাবেন ফাইল আপনি যে বিকল্পটি চান তা চয়ন করুন৷

লেআউট

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

ক্লিয়ারেন্স::PasswordsController.layout "my_passwords_layout"ক্লিয়ারেন্স::SessionsController.layout "my_sessions_layout"ক্লিয়ারেন্স::UsersController.layout "my_admin_layout"

সহায়ক পদ্ধতি

ক্লিয়ারেন্স আপনাকে সাহায্যকারী পদ্ধতি সরবরাহ করে যা আপনার controllers এ ব্যবহার করা যেতে পারে , views , এবং helpers . এই পদ্ধতিগুলির মধ্যে রয়েছে signed_in? , signed_out? , এবং current_user . যেমন:

<% যদি সাইন ইন করেন? %> <%=current_user.email %> <%=button_to "সাইন আউট", sign_out_path, পদ্ধতি::delete %><% else %> <%=link_to "সাইন ইন", sign_in_path %><% end %> 

উপসংহার

প্রমাণীকরণের ক্ষেত্রে ক্লিয়ারেন্স আপনাকে অফার করার জন্য অনেক কিছু আছে, তাই আপনার পরবর্তী প্রকল্পে এটি চেষ্টা করে দেখতে ভুলবেন না। আপনি GitHub পৃষ্ঠাটি চেক করে আরও শিখতে পারেন।


  1. রেলের সাথে Tailwind CSS ব্যবহার করা

  2. AWS Lambda এ রেল স্থাপন করা হচ্ছে

  3. রেল নিরাপত্তা হুমকি:প্রমাণীকরণ

  4. রেলের সাথে কৌণিক ব্যবহার 5