এই সিরিজের প্রথম অংশে, আমরা মডিউল, হেল্পার, ভিউ, কন্ট্রোলার এবং রুট অন্বেষণ করতে একটি উদাহরণ অ্যাপ ব্যবহার করে Device চালু করেছি।
এই অংশে, আমরা Devise-এর আরও উন্নত ব্যবহারগুলি অন্বেষণ করব, বিশেষ করে OmniAuth, API প্রমাণীকরণ এবং Authtrail-এর ব্যবহার৷
চলুন সরাসরি ভিতরে ঝাঁপ দেওয়া যাক!
রুবির জন্য OmniAuth এর সাথে প্রমাণীকরণ
আজকাল, আপনার দেখা প্রায় প্রতিটি ওয়েব অ্যাপ্লিকেশন আপনাকে প্রমাণীকরণ প্রদানকারীদের একটি বিস্তৃত নির্বাচনের মাধ্যমে লগ ইন করার বিকল্প অফার করবে, টুইটার এবং Facebook এর মতো সামাজিক নেটওয়ার্ক থেকে শুরু করে Google, GitHub এবং আরও অনেক কিছু।
অনেক ক্ষেত্রে, এই সুবিধাজনক মাল্টি-প্রোভাইডার প্রমাণীকরণটি OmniAuth নামে একটি লাইব্রেরি দ্বারা চালিত হয়। OmniAuth হল রুবির জন্য একটি নমনীয় এবং শক্তিশালী প্রমাণীকরণ লাইব্রেরি যা আপনাকে একাধিক বহিরাগত প্রদানকারীর সাথে একীভূত করতে দেয়।
এটি বিভিন্ন OAuth প্রদানকারীর সাথে সংযোগ করার জন্য একটি সহজ এবং একীভূত API প্রদান করে। OmniAuth এমন পরিস্থিতিতে বিশেষভাবে উপযোগী যেখানে আপনি আপনার ব্যবহারকারীদের তাদের সামাজিক মিডিয়া অ্যাকাউন্ট ব্যবহার করে সাইন আপ বা লগ ইন করার বিকল্প দিতে চান। OmniAuth-এর মাধ্যমে, আপনি সহজেই আপনার Rails অ্যাপ্লিকেশনে সামাজিক লগইন কার্যকারিতা যোগ করতে পারেন।
যখন OmniAuth-কে Devise রত্ন-এর পাশাপাশি ব্যবহার করা হয়, তখন ব্যবহারকারীর প্রমাণীকরণ এবং অনুমোদন পরিচালনা করা আরও সহজ হয়ে যায়। বাহ্যিক প্রদানকারী সাইন-ইন বিকল্পগুলির জন্য OmniAuth ব্যবহার করার সময় আপনি Devise-এর অন্তর্নির্মিত প্রমাণীকরণ বৈশিষ্ট্যগুলির সুবিধা নিতে পারেন৷
OmniAuth এবং ডিভাইস দিয়ে শুরু করা
উল্লিখিত হিসাবে, OmniAuth আপনাকে বেশ কয়েকটি তৃতীয় পক্ষের প্রমাণীকরণ প্রদানকারীর সাথে একীভূত করার অনুমতি দেয়। এই নিবন্ধের উদ্দেশ্যে, আমরা GitHub ব্যবহার করব।
OmniAuth Gems ইনস্টল করুন
আপনার অ্যাপের Gemfile-এ , নিম্নলিখিত লাইন যোগ করুন:
এবং যদি আপনি OmniAuth 2.0+ রত্ন ব্যবহার করেন, তাহলে আপনাকে যোগ করতে হবে:
omniauth-rails_csrf_protection রত্ন নিশ্চিত করে যে কোনো GET OAuth প্রবাহের অনুরোধগুলি অক্ষম করা হয়েছে৷ এটি OAuth অনুরোধ পর্বের আগে একটি Rails CSRF টোকেন যাচাইকারীও সন্নিবেশ করায়। এই দুটি ক্রিয়া OAuth প্রমাণীকরণ প্রবাহের লক্ষ্যে ক্রস-সাইট জালিয়াতি আক্রমণ প্রশমিত করার জন্য।
এরপর, bundle install চালান রত্ন ইনস্টল করতে।
একটি নতুন GitHub OAuth অ্যাপ তৈরি করুন
এখন আমাদের GitHub-এ একটি নতুন OAuth অ্যাপ তৈরি করতে হবে। এই অ্যাপটি প্রমাণীকরণ অনুমতি সহ ব্যবহারকারী হিসাবে কাজ করবে যা প্রয়োজন হলে সহজেই প্রত্যাহার করা যেতে পারে।
প্রথম ধাপ হল আপনার GitHub অ্যাকাউন্ট প্রোফাইলের অধীনে সেটিংস পৃষ্ঠায় যাওয়া। তারপরে, বামদিকের মেনুতে, "ডেভেলপার সেটিংস" এ ক্লিক করুন। আপনি নীচের মত একটি স্ক্রীন দেখতে পাবেন, যেখানে আপনি একটি নতুন OAuth অ্যাপ তৈরি করতে পারেন:

আপনি যখন "নতুন অ্যাপ্লিকেশন নিবন্ধন করুন" এ ক্লিক করুন, আপনি এইরকম একটি স্ক্রিন পাবেন:

নিম্নরূপ ফর্ম বিবরণ পূরণ করুন:
- অ্যাপ্লিকেশনের নাম - আপনার নতুন OAuth অ্যাপকে একটি উপযুক্ত নাম দিন৷ ৷
- হোমপেজ ইউআরএল - আপাতত
http://localhost:3000/ব্যবহার করুন . উৎপাদনে, আপনি আপনার অ্যাপের আসল হোমপেজ ইউআরএল ব্যবহার করবেন। - অ্যাপ্লিকেশনের বিবরণ - প্রয়োজনীয় নয়, তবে আপনার যদি অনেকগুলি অ্যাপ থাকে এবং সেগুলির মধ্যে পার্থক্য করার প্রয়োজন হয় তবে আপনার কাছে একটি থাকতে পারে৷
- অনুমোদন কলব্যাক url - এটি প্রয়োজনীয় ইনপুট এবং সাধারণত একটি OAuth কলব্যাক url ফর্ম্যাট অনুসরণ করবে যেমন
http://<app-url>/users/auth/<application-provider>/callback. এতে বলা হয়েছে, Google এর মতো কিছু OAuth প্রদানকারী এই ফর্ম্যাটটি অনুসরণ নাও করতে পারে, তাই আপনাকে এটি নোট করতে হবে।
এটি সম্পন্ন হলে, "রেজিস্টার অ্যাপ্লিকেশন" এ ক্লিক করুন। নিম্নলিখিত স্ক্রিনে, একটি নতুন অ্যাপ সিক্রেট জেনারেট করুন এবং এটিকে নিরাপদ কোথাও নোট করুন (যেমন এটি শুধুমাত্র একবার আপনাকে দেখানো হবে)।
ডিভাইস ইনিশিয়ালাইজার কনফিগার করুন
ডিভাইস ইনিশিয়ালাইজার config/initializers/devise.rb খুলুন এবং গিটহাবের জন্য নির্দিষ্ট OmniAuth বিভাগে নেভিগেট করুন। এটি সম্ভবত মন্তব্য করা হবে, তাই এটিকে আনকমেন্ট করুন এবং আপনার নতুন GitHub OAuth অ্যাপের আইডি এবং গোপনীয়তার সাথে এটি সম্পাদনা করুন:
OmniAuth কলব্যাক কন্ট্রোলার তৈরি করুন
আপনি যদি ইতিমধ্যেই ডিভাইস কন্ট্রোলার তৈরি করে থাকেন, তাহলে আপনি OmniauthCallbacksController পাবেন আপনি সেই অনুযায়ী কাস্টমাইজ করার জন্য প্রস্তুত। যদি আপনারটি সেখানে না থাকে, তাহলে ম্যানুয়ালি একটি তৈরি করুন এবং এটিকে নিম্নরূপ সম্পাদনা করুন:
উপরের কোড সম্পর্কে কিছু বিষয় খেয়াল রাখতে হবে:
from_omniauthএকটি পদ্ধতি যা আমরা আমাদেরUserএর ভিতরে প্রয়োগ করব মডেল।sign_in_and_redirectOAuth-এর ভিতরের একটি পদ্ধতি৷
৷
ব্যবহারকারী মডেল পরিবর্তন করতে একটি মাইগ্রেশন যোগ করুন
আমাদের এখন ব্যবহারকারী মডেলে কিছু কলাম যোগ করতে হবে, বিশেষ করে provider কলাম এবং একটি uid কলাম:
bundle exec rails db:migrate চালান এই ধাপটি চূড়ান্ত করতে।
ডিভাইস মডেলকে সর্বজনগ্রাহ্য করুন
এখানে, আমাদের User সম্পাদনা করতে হবে এতে Device Omniauthable মডিউল যোগ করে মডেল:
এর পরে, from_omni_auth যোগ করুন পদ্ধতি এটি Users::OmniauthCallbacksController থেকে কল করা হবে যেটা আমরা এইমাত্র সেট আপ করি:
এখন আমাদের কাছে আর একটি জিনিস বাকি আছে:আমাদের ডিভাইস ভিউতে লগইন লিঙ্ক যোগ করা।
লগইন লিঙ্ক সেটআপ করুন
ডিফল্টরূপে, ব্যবহারকারীর নিবন্ধন এবং লগইন ভিউতে ডিভাইস স্বয়ংক্রিয়ভাবে আপনার জন্য উপযুক্ত প্রদানকারীর লগইন লিঙ্ক যুক্ত করবে। এই লিঙ্কটি GET ব্যবহার করবে পদ্ধতি, কিন্তু আমরা জানি যে OmniAuth 2.0+ পছন্দ করে POST অনুরোধ সুতরাং, আমাদের লিঙ্কটি নিষ্ক্রিয় করতে হবে এবং POST ব্যবহার করে আমাদের নিজস্ব সন্নিবেশ করতে হবে অনুরোধ:
এর সাথে, আমরা সফলভাবে Devise এবং GitHub OAuth প্রমাণীকরণ সহ একটি Ruby on Rails 7 অ্যাপ সেট আপ করেছি। আপনি এখানে সহচর অ্যাপের পুরো সোর্স কোডটি পেতে পারেন।
এর পরে, আমরা আরেকটি উন্নত ব্যবহারের ক্ষেত্রে যাব:একটি API কল প্রমাণীকরণ করতে Devise ব্যবহার করে৷
রুবির জন্য ডিভাইস সহ API প্রমাণীকরণ
আজ, ব্যবহারকারীদের একটি API এর মাধ্যমে আপনার অ্যাপের সাথে সংযোগ করতে সক্ষম হওয়ার আশা করা অস্বাভাবিক নয়। এই বিভাগে, আমরা দেখব কীভাবে আমরা ডিভাইস ব্যবহার করে এই ধরনের ব্যবহারকারীর অনুরোধগুলিকে নিরাপদে প্রমাণীকরণ করতে পারি৷
যেখানে ব্রাউজার-ভিত্তিক প্রমাণীকরণ সাধারণত কুকি-ভিত্তিক হয়, সেখানে বেশিরভাগ API প্রমাণীকরণ JSON ওয়েব টোকেন (বা কেবল JWTs) নামক টোকেনের মাধ্যমে হয়, যেগুলি শিরোনামের চারপাশে পাস করা হয়।
টিপ :এই বিভাগের উদ্দেশ্যে, আমরা ধরে নেব যে আমরা একটি Rails API-এর সাথে কাজ করছি৷ অনুসরণ করতে, rails new app_name --api দিয়ে একটি তৈরি করুন
JWT-ভিত্তিক প্রমাণীকরণ প্রবাহ
আমরা যেমন উল্লেখ করেছি, API প্রমাণীকরণ JWT টোকেনের উপর ভিত্তি করে করা হয়, এবং এটি গুরুত্বপূর্ণ যে আমরা বুঝতে পারি যে কীভাবে একটি JWT-ভিত্তিক প্রমাণীকরণ প্রবাহ ঘটে। মূলত, এটি নীচে বর্ণিত ধাপগুলির একটি সাধারণ ক্রম অনুসরণ করে:
- একজন ব্যবহারকারী ক্লায়েন্ট API অ্যাপে একটি কল করে।
- এপিআই অ্যাপটি একটি JSON ওয়েব টোকেন (JWT) দিয়ে সাড়া দেয়, একটি প্রমাণীকরণ টোকেন যা কুকিজের জায়গায় ব্যবহার করা যেতে পারে।
- ব্যবহারকারী ক্লায়েন্টের পরবর্তী অনুরোধগুলি
Authorization-এ এই টোকেন ব্যবহার করে করা হয় হেডার। - ব্যবহারকারী তারপরে ডিভাইস 'সেশন ধ্বংস' অ্যাকশনে আঘাত করতে পারে, যার ফলে টোকেন ধ্বংস হয়ে যায় এবং ব্যবহারকারী লগ আউট হয়ে যায়।
এখন, ক্রস-অরিজিন রিসোর্স শেয়ারিং (CORS) নামে অভিহিত করা থেকে শুরু করে এই প্রবাহকে কাজে লাগাই।
CORS সেট আপ করা হচ্ছে
CORS বহিরাগত উত্স থেকে অনুরোধের অনুমতি দিতে আমাদের API অ্যাপ সেট আপ করে৷ CORS হল একটি HTTP-ভিত্তিক নিরাপত্তা নীতি যা আপনার অ্যাপ্লিকেশন দ্বারা বহিরাগত অনুরোধগুলি কীভাবে পরিচালনা করা হবে তা নির্ধারণ করে। ডিফল্টরূপে, CORS যেকোন অনুরোধকে ব্লক করবে যা একটি ডোমেন থেকে উদ্ভূত যেটি প্রাথমিক অনুরোধ করেছে (অন্য কথায়, একটি ভিন্ন "অরিজিন" থেকে আসছে)।
CORS সঠিকভাবে পরিচালনা করতে, আমরা নিফটি রত্ন ব্যবহার করব rack-cors . Gemfile-এ , নীচের লাইনটি আনকমেন্ট করুন, তারপর bundle install চালান :
এছাড়াও, একটি সংশ্লিষ্ট CORS ইনিশিয়ালাইজার ফাইল খুলুন এবং এটিকে নীচের মত পরিবর্তন করুন:
আমরা এইমাত্র যা করেছি সে সম্পর্কে কিছু গুরুত্বপূর্ণ নোট:
origins "*"- সহজভাবে মানে আমাদের API অ্যাপ এখন অন্য কোনো উৎস থেকে অনুরোধ পেতে পারে।expose: %w[Authorization Uid]- ডিফল্টরূপে,rack-corsরত্ন অনুমোদন এবং UID শিরোনাম প্রকাশ করে না, তবে আমাদের তাদের প্রয়োজন যেহেতু আমরা অনুমোদনের টোকেনগুলি পাস করব৷
এটি হয়ে গেলে, আসুন Devise এবং তার সাথে থাকা Devise-JWT রত্ন ইনস্টল করি।
আপনার রেল অ্যাপে Device এবং Device-JWT Gems যোগ করুন
devise-jwt রত্ন হল Devise-এর একটি এক্সটেনশন যা আমাদের JWT টোকেনগুলির সাথে কাজ করার অনুমতি দেবে। রত্নগুলিকে Gemfile-এ যোগ করুন , তারপর bundle install চালান :
ডিভাইস ইনস্টল জেনারেটর চালান bundle exec rails g devise:install .
মডেল তৈরি এবং কনফিগার করুন
আমাদের দুটি মডেল সেট আপ করতে হবে:সাধারণ ডিভাইস ব্যবহারকারী মডেল (bundle exec rails g devise User ), এবং একটি মডেল যা আমরা প্রত্যাহার কৌশলের জন্য ব্যবহার করব (অন্য কথায়, কীভাবে একজন ব্যবহারকারী API থেকে সাইন আউট করবেন):
আমরা জেডব্লিউটি টোকেন প্রমাণীকরণযোগ্য মডিউল যোগ করে এবং আমাদের দ্বিতীয় মডেল, JwtDenylist ব্যবহার করার জন্য টোকেন প্রত্যাহার কৌশল সংজ্ঞায়িত করে API প্রমাণীকরণের জন্য সাধারণ ডিভাইস ব্যবহারকারী মডেল পরিবর্তন করি। :
এর পরে, আমরা প্রত্যাহার কৌশল এবং ব্যবহার করা প্রত্যাহার টেবিল উল্লেখ করে আমাদের দ্বিতীয় মডেল কনফিগার করি:
নিম্নলিখিত বিভাগে, আমরা টোকেন প্রত্যাহার রূপরেখা করব এবং কেন আমাদের এটি প্রয়োজন।
টোকেন প্রত্যাহারের গুরুত্ব
কেন টোকেন প্রত্যাহার গুরুত্বপূর্ণ? কারণ JWT টোকেন রাষ্ট্রহীন। সার্ভার তাদের স্বাক্ষর ছাড়া অন্য কিছুই জানে না। এই ধরনের পরিস্থিতিতে, সার্ভারের সংশ্লিষ্ট টোকেন প্রত্যাহার করে ব্যবহারকারীকে সাইন আউট করার কোন উপায় নেই। যেহেতু পৃথক টোকেন প্রত্যাহার করার কোন উপায় নেই, তাই আমাদের একটি তৈরি করতে হবে এবং সার্ভারকে এটি ব্যবহার করতে বলতে হবে।
একটি টোকেন প্রত্যাহার করার সময়, হুডের নীচে আসলে যা ঘটছে তা হল টোকেনের একটি অনন্য অংশ, jti (JWT ID), সংজ্ঞায়িত প্রত্যাহার কৌশল অনুযায়ী নিষ্কাশিত এবং ব্যবহার করা হয়।
অবশ্যই, এটি একটি টোকেন প্রত্যাহার কৌশল কী তা নিয়ে আরেকটি প্রশ্ন উত্থাপন করে। সংক্ষেপে, এটি আপনার সার্ভার দ্বারা টোকেন প্রত্যাহার কিভাবে পরিচালনা করা হবে তার একটি সংজ্ঞা। তিনটি মৌলিক প্রত্যাহার কৌশল রয়েছে:
- JTIMatcher কৌশল - এখানে, ব্যবহারকারী মডেলে "jti" নামক একটি অনন্য কলাম যোগ করা হয়েছে, যা প্রত্যাহার টেবিল হিসাবেও কাজ করে। যখনই একজন ব্যবহারকারী একটি অনুরোধ করে,
jtiহেডারে সঞ্চিত টোকেনগুলির সাথে মিলিত হয় এবং একটি মিল পাওয়া গেলেই অ্যাক্সেস অনুমোদিত হয়৷ - অস্বীকৃতির কৌশল - এটির জন্য,
jtiএবং টোকেনের মেয়াদ শেষ হয় (expপ্রত্যাহার করা টোকেন) একটি ডাটাবেস টেবিলে সংরক্ষণ করা হয়। একজন ব্যবহারকারীর দ্বারা করা প্রতিটি অনুরোধের জন্য, ব্যবহারকারীর বর্তমান টোকেনjtiতুলনা করে এই টেবিলের বিরুদ্ধে একটি চেক করা হয়। ডাটাবেসে প্রত্যাহারকৃতদের বিরুদ্ধে। যদি একটি মিল পাওয়া যায়, সেই ব্যবহারকারীর অনুরোধ অস্বীকার করা হয়। - অনুমোদিত কৌশল - একটি উপায়ে, এই কৌশলটি প্রথম কৌশলের অনুরূপ, তবে এখানে JWT আইডি সংরক্ষণ করা টেবিলটি ব্যবহারকারীর টোকেন সংরক্ষণ করে অন্য টেবিলের সাথে এক-থেকে-অনেক সম্পর্কযুক্ত। যখনই একটি অনুরোধ করা হয়, ব্যবহারকারীর
jtiঅ্যালোলিস্ট টেবিলে সংরক্ষিত টোকেনগুলির সাথে মিলে যাওয়া টেবিলে যা সংরক্ষিত আছে তার সাথে মিলে যায়। যদি একটি মিল পাওয়া যায় তবেই অ্যাক্সেস অনুমোদিত৷
স্পষ্টতই, এটি টোকেন প্রত্যাহারের একটি খুব সরলীকৃত ওভারভিউ, এবং আপনি এখানে এটি সম্পর্কে আরও জানতে পারেন৷
JWT টোকেনের জন্য একটি সাইনিং কী সেট আপ করুন
যেহেতু আমরা ব্যবহারকারীদের এবং তাদের অনুরোধগুলিকে প্রমাণীকরণ করতে নিরাপদ টোকেন ব্যবহার করব, তাই আমাদের তাদের স্বাক্ষর করার একটি উপায় প্রয়োজন৷ এখানেই আমাদের গোপন কী আসে। এটি সুপারিশ করা হয় যে আপনি রেল গোপন কী থেকে আলাদা একটি নতুন কী তৈরি করুন, secret_key_base .
bundle exec rake secret চালান একটি অনন্য কী তৈরি করতে, তারপর এই কীটি অন্তর্ভুক্ত করতে ডিভাইস ইনিশিয়ালাইজার সম্পাদনা করুন:
অবশেষে, আসুন কন্ট্রোলার সেট আপ করি।
কন্ট্রোলার সেট আপ
API প্রমাণীকরণের জন্য Devise বাস্তবায়নের চূড়ান্ত ধাপ হল আমাদের কন্ট্রোলার সেট আপ করা। সরলতার জন্য, আমরা দুটি কন্ট্রোলার সেট আপ করব:একটি রেজিস্ট্রেশন পরিচালনার জন্য এবং অন্যটি সেশনের জন্য৷
রেজিস্ট্রেশন কন্ট্রোলার দিয়ে শুরু করে ম্যানুয়ালি এগুলো তৈরি করা যাক:
এই কন্ট্রোলারের সাথে কী হচ্ছে তা এখানে:
- আমরা JSON-এর সাথে অনুরোধের প্রতিক্রিয়া জানাতে এটি কনফিগার করি।
- আমরা একটি
respond_withনির্দিষ্ট করি ক্রিয়া যা একটি সফল বা ব্যর্থ নিবন্ধনের ফলাফল প্রদান করে৷
এবং এখন সেশন কন্ট্রোলারের জন্য:
রেজিস্ট্রেশন কন্ট্রোলারের মতই, এখানে আমরা উল্লেখ করি যে কন্ট্রোলার JSON এর সাথে সাড়া দেবে। এছাড়াও আমরা একটি respond_with সংজ্ঞায়িত করি যখন একজন ব্যবহারকারী সফলভাবে লগ ইন করেন এবং একটি respond_to_on_destroy এর জন্য কাজ একটি ব্যবহারকারী সাইন আউট পরিচালনা করতে।
এবং এর সাথে, আপনার ডিভাইস এবং JWT টোকেন দ্বারা চালিত একটি কার্যকরী API প্রমাণীকরণ প্রবাহ থাকা উচিত!
ডিভাইস এবং অথট্রেইল ব্যবহার করে আপনি কীভাবে ব্যবহারকারীর লগইনগুলি ট্র্যাক করতে পারেন তা আমাদের চূড়ান্ত বিভাগটি দ্রুত দেখবে৷
অথট্রেইল দিয়ে ডিভাইস লগইন ট্র্যাক করা
ধরা যাক আপনি আপনার অ্যাপ ব্যবহারকারীদের একটি বিজ্ঞপ্তি ইমেল পাঠাতে চান যখনই কেউ তাদের অ্যাকাউন্টে লগ ইন করে, যেমন IP ঠিকানা এবং লগইনের টাইমস্ট্যাম্পের মতো বিবরণ সহ। আপনি কিভাবে এটি সম্পন্ন করতে পারেন?
আপনাকে ব্যবহারকারীর লগইনগুলি ট্র্যাক করতে হবে, তারপর আপনার ব্যবহারকারীদের পাঠানো বিজ্ঞপ্তি ইমেলে সেই তথ্যটি ব্যবহার করুন৷ কিন্তু প্রথমে, আপনাকে ব্যবহারকারীর লগইনগুলি ট্র্যাক করার একটি উপায়ের প্রয়োজন হবে৷ এটি অথট্রাইল নামক একটি নিফটি রত্ন ব্যবহার করে সম্পন্ন করা যেতে পারে, যা ডিভাইসের সাথেও ভালভাবে যুক্ত।
অথট্রাইল ইনস্টল করা হচ্ছে
প্রথম ধাপ হল bundle add authtrail দিয়ে রত্নটি ইনস্টল করা . উপরন্তু, যেহেতু আপনি আপনার অ্যাপ ডাটাবেসে ইমেল এবং আইপি ঠিকানার মতো ব্যবহারকারী-শনাক্তযোগ্য তথ্য সংরক্ষণ করবেন, তাই আপনি লকবক্স এবং ব্লাইন্ডেন্ডেক্স রত্নগুলির সংমিশ্রণ ব্যবহার করে এই ডেটা উৎপাদনে এনক্রিপ্ট করার জন্য অত্যন্ত সুপারিশ করা হচ্ছে৷
এরপরে, অথট্রেইল জেনারেটর চালান এটির ইনিশিয়ালাইজার এবং একটি সহগামী টেবিল মাইগ্রেশন তৈরি করতে যা লগইন ডেটা সংরক্ষণ করবে:
অথট্রাইল কিভাবে কাজ করে
যখনই একজন ব্যবহারকারী লগ ইন করার চেষ্টা করেন, তখন নিম্নলিখিত গুরুত্বপূর্ণ বিবরণ সহ একটি নতুন Authtrail রেকর্ড তৈরি করা হয়:
- ব্যবহৃত লগইন ইমেল ঠিকানা
- লগইন সফল হয়েছে কি না
- লগইন ব্যর্থ হওয়ার কারণ (যদি লগইন ব্যর্থ হয়)
- ব্যবহারকারীর IP ঠিকানা,
referrer, এবং আরো অনেক কিছু
তারপর আপনি আপনার ইচ্ছা মত এই তথ্য ব্যবহার করতে পারেন. উদাহরণস্বরূপ, আপনি একজন ব্যবহারকারীকে একটি বিজ্ঞপ্তি ইমেল পাঠাতে পারেন, ইমেল এবং আইপি ঠিকানা তথ্য সহ, তাদের জানাতে যে তাদের অ্যাকাউন্টে একটি লগইন প্রচেষ্টা করা হয়েছে৷
আপনার জন্য উপলব্ধ সমস্ত সম্ভাবনা দেখতে Authtrail এর ডকুমেন্টেশনের মাধ্যমে যান৷
৷র্যাপিং আপ
এই সিরিজে, আমরা ডিভাইজ মণির গভীরে ডুব দিয়েছি।
প্রথমত, আমরা ডিভাইসের মডিউল, হেল্পার, ভিউ, কন্ট্রোলার এবং রুটগুলি কীভাবে কাজ করে তা সহ, আমরা ডিভাইসের মৌলিক বিষয়গুলির সাথে আঁকড়ে ধরেছি। এই দ্বিতীয় এবং চূড়ান্ত অংশে, আমরা কীভাবে OAuth, Authtrail এবং API প্রমাণীকরণের জন্য Devise ব্যবহার করতে হয় তা অনুসন্ধান করেছি৷
আশা করি, এই সিরিজটি সমস্ত কিছুর জন্য একটি সহায়ক নির্দেশিকা হিসাবে কাজ করবে ডিভাইজ অথেনটিকেশন৷
৷শুভ কোডিং!
পি.এস. আপনি যদি রুবি ম্যাজিক পোস্টগুলি প্রেস থেকে বের হওয়ার সাথে সাথে পড়তে চান তবে আমাদের রুবি ম্যাজিক নিউজলেটারে সাবস্ক্রাইব করুন এবং একটি পোস্ট মিস করবেন না!