Devise একটি জনপ্রিয় Ruby on Rails জেম (Gem) যা ইউজার অথেন্টিকেশন ব্যবস্থাপনা সহজ করে তোলে। এটি ইউজার রেজিস্ট্রেশন, লগইন, লগআউট, পাসওয়ার্ড রিসেট, ইমেইল ভেরিফিকেশন, এবং আরও অনেক গুরুত্বপূর্ণ অথেন্টিকেশন সম্পর্কিত ফিচার সরবরাহ করে। Devise-এ তৈরি করা ইউজারের জন্য সুরক্ষিত অথেন্টিকেশন ফিচারগুলোর মধ্যে ফিল্ড ভ্যালিডেশন এবং মডেল কলব্যাকস অন্তর্ভুক্ত থাকে, যা ডেভেলপারের জন্য প্রক্রিয়া সহজ করে তোলে।
Devise Gem ইন্সটলেশন এবং কনফিগারেশন
Devise ব্যবহারের জন্য প্রথমে আপনাকে জেমটি ইনস্টল করতে হবে এবং তার পর প্রয়োজনীয় কনফিগারেশন করতে হবে।
1. Devise Gem ইনস্টল করা
প্রথমে, Gemfile এ devise যোগ করুন:
gem 'devise'
এরপর, টার্মিনালে এই কমান্ডটি চালিয়ে জেমটি ইনস্টল করুন:
bundle install
2. Devise কনফিগারেশন
Devise কনফিগারেশন ফাইল তৈরি করতে এই কমান্ডটি চালান:
rails generate devise:install
এই কমান্ডটি ডিভাইজের কনফিগারেশন ফাইল config/initializers/devise.rb তৈরি করবে এবং ব্যবহারকারীদের জন্য কিছু নির্দেশনা দিবে, যেমন ইউজারের ইমেইল ভেরিফিকেশন সেটিংস এবং অ্যাডমিন রুট তৈরি।
3. ইউজার মডেল তৈরি
Devise ইউজারের জন্য একটি মডেল তৈরি করতে devise জেনারেটর ব্যবহার করুন। সাধারণত, আপনি একটি User মডেল তৈরি করবেন:
rails generate devise User
এই কমান্ডটি User মডেল তৈরি করবে এবং সেখানে Devise এর প্রয়োজনীয় ফিচারগুলো যোগ করবে, যেমন email, encrypted_password, reset_password_token, ইত্যাদি। এটি ডাটাবেস মাইগ্রেশনও তৈরি করবে।
4. মাইগ্রেশন চালানো
মাইগ্রেশন ফাইলটি ডাটাবেসে প্রয়োগ করতে এই কমান্ডটি চালান:
rails db:migrate
এটি users টেবিল তৈরি করবে যেখানে Devise এর জন্য প্রয়োজনীয় ফিল্ডগুলো থাকবে।
Devise-এ Authentication ব্যবহার
Devise ইন্সটল করার পর আপনি খুব সহজেই ইউজার অথেন্টিকেশন ফিচারগুলো ব্যবহার করতে পারবেন। Devise ইউজারের জন্য রেজিস্ট্রেশন, লগইন, লগআউট ইত্যাদি ফিচার প্রদান করে।
1. রেজিস্ট্রেশন ফর্ম তৈরি
Devise আপনাকে রেজিস্ট্রেশন, লগইন, এবং পাসওয়ার্ড রিসেটের জন্য অটোমেটিক্যালি ফর্ম তৈরি করে দেয়, তবে আপনি চাইলে কাস্টমাইজও করতে পারেন।
<%= form_for(resource, as: resource_name, url: registration_path(resource_name)) do |f| %>
<%= f.label :email %>
<%= f.email_field :email, autofocus: true %>
<%= f.label :password %>
<%= f.password_field :password, autocomplete: "off" %>
<%= f.submit "Sign up" %>
<% end %>
এটি একটি সাধারণ রেজিস্ট্রেশন ফর্ম যা ইউজারের ইমেইল এবং পাসওয়ার্ড ইনপুট নেয়।
2. লগইন ফর্ম
Devise ইউজারের লগইন ফর্মও স্বয়ংক্রিয়ভাবে তৈরি করে দেয়। তবে আপনি চাইলে এটি কাস্টমাইজ করতে পারেন।
<%= form_for(resource, as: resource_name, url: session_path(resource_name)) do |f| %>
<%= f.label :email %>
<%= f.email_field :email, autofocus: true %>
<%= f.label :password %>
<%= f.password_field :password, autocomplete: "off" %>
<%= f.submit "Log in" %>
<% end %>
3. লগআউট ফিচার
লগআউট করার জন্য Devise একটি রুট প্রদান করে, যা ইউজারকে লগআউট করতে সাহায্য করে।
<%= link_to "Log out", destroy_user_session_path, method: :delete %>
এটি লগআউট করার জন্য একটি লিঙ্ক তৈরি করবে।
Devise-এর অতিরিক্ত ফিচার
Devise অনেক ফিচার সরবরাহ করে যা আপনাকে সুরক্ষিত অথেন্টিকেশন প্রক্রিয়া তৈরি করতে সহায়তা করবে। নিচে কিছু জনপ্রিয় ফিচার উল্লেখ করা হলো:
1. Confirmable (ইমেইল ভেরিফিকেশন)
Devise এর confirmable ফিচার ব্যবহার করে ইউজারের ইমেইল ভেরিফিকেশন করা যায়। এটি ব্যবহারকারীকে রেজিস্ট্রেশন পরবর্তী একটি ইমেইল পাঠায় যাতে ইউজারকে তার ইমেইল ঠিকানা যাচাই করতে বলা হয়।
Devise কনফিগারেশন ফাইলে :confirmable অ্যাট্রিবিউট যোগ করুন:
class User < ApplicationRecord
devise :confirmable, :registerable, :database_authenticatable, :recoverable, :rememberable
end
এখন, একটি ইমেইল ভেরিফিকেশন লিংক পাঠানো হবে, যাতে ইউজার তার ইমেইল ঠিকানা কনফার্ম করতে পারবে।
2. Recoverable (পাসওয়ার্ড রিসেট)
Devise এর recoverable ফিচারের মাধ্যমে ইউজার পাসওয়ার্ড ভুলে গেলে সেটি রিসেট করতে পারে। এটি পাসওয়ার্ড রিসেট লিংক ইমেইলে পাঠায়।
class User < ApplicationRecord
devise :recoverable, :registerable, :database_authenticatable
end
এখন, ব্যবহারকারী পাসওয়ার্ড ভুলে গেলে সে একটি রিসেট লিংক ইমেইলে পাবে।
3. Lockable (অ্যাকাউন্ট লক)
Devise এর lockable ফিচার ব্যবহার করে ইউজারের অ্যাকাউন্ট লক করা যায় নির্দিষ্ট সংখ্যক ভুল লগইন চেষ্টার পর।
class User < ApplicationRecord
devise :lockable, :registerable, :database_authenticatable
end
এটি ব্যবহারকারীকে নির্দিষ্ট সংখ্যক ভুল পাসওয়ার্ড ইনপুটের পর অ্যাকাউন্ট লক করে দেবে।
রাউট কনফিগারেশন
Devise আপনার রাউট কনফিগারেশন স্বয়ংক্রিয়ভাবে তৈরি করে, তবে আপনি চাইলে কাস্টমাইজও করতে পারেন। সাধারণভাবে, config/routes.rb ফাইলে নিচের কোডটি থাকে:
Rails.application.routes.draw do
devise_for :users
# অন্যান্য রাউট
end
এটি Devise এর সমস্ত রাউট তৈরি করে, যেমন /users/sign_in, /users/sign_up, /users/password/new ইত্যাদি।
সারমর্ম
Devise একটি শক্তিশালী এবং জনপ্রিয় Ruby on Rails জেম, যা সহজেই সুরক্ষিত ইউজার অথেন্টিকেশন সিস্টেম তৈরি করতে সহায়তা করে। এটি ইউজার রেজিস্ট্রেশন, লগইন, লগআউট, পাসওয়ার্ড রিসেট, ইমেইল ভেরিফিকেশন, এবং অ্যাকাউন্ট লক করার মতো ফিচার সরবরাহ করে। Devise ব্যবহার করে ইউজার অথেন্টিকেশন ব্যবস্থাকে খুব সহজেই নিরাপদ এবং কার্যকর করা যায়।
Read more