কম্পিউটার

কিভাবে একটি রেল অ্যাপ্লিকেশনে OmniAuth-Twitter ব্যবহার করবেন

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

আপনি OmniAuth-Twitter ব্যবহার করবেন, যেটিতে OmniAuth-এর জন্য টুইটার কৌশল রয়েছে।

এর মধ্যে ডুব দেওয়া যাক!

শুরু করা

আপনার রেল অ্যাপ্লিকেশন তৈরি করে শুরু করুন। আপনার টার্মিনাল থেকে, এটি করতে কমান্ডটি চালান:

রেলস নতুন Tuts-Social -T 

আপনার জেমফাইল খুলুন এবং বুটস্ট্র্যাপ রত্ন যোগ করুন।

#Gemfile...gem 'bootstrap-sass'

কমান্ডটি চালিয়ে রত্নটি ইনস্টল করুন:

বান্ডেল ইনস্টল

app/assets/stylesheets/application.css নাম পরিবর্তন করুন app/assets/stylesheets/application.scs-এ .

হয়ে গেলে, বুটস্ট্র্যাপ আমদানি করতে কোডের নিম্নলিখিত লাইন যোগ করুন।

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

_navigation.html.erb নামে একটি আংশিক তৈরি করুন আপনার নেভিগেশন কোড রাখা; আংশিকটি app/views/layouts-এ অবস্থিত হওয়া উচিত ডিরেক্টরি।

একটি IDE-তে নিচের কোডটি লিখুন। এটি আপনার অ্যাপ্লিকেশনের জন্য একটি নেভিগেশন বার তৈরি করতে বুটস্ট্র্যাপ ব্যবহার করে৷

#app/views/layouts/_navigation.html.erb

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

#app/views/layouts/application.html.erb  Tuts Social <%=csrf_meta_tags %> <%=stylesheet_link_tag 'অ্যাপ্লিকেশন', মিডিয়া :'all', 'data-turbolinks-track':'reload' %> <%=javascript_include_tag 'application', 'data-turbolinks-track':'reload' %>   <%=রেন্ডার "লেআউটস/নেভিগেশন" %> 
<% flash.each do |key, value| %>
<%=মান %>
<% end %>
<%=ফলন %>

একটি PagesController তৈরি করুন আপনার টার্মিনালে নীচের কমান্ডটি প্রবেশ করে একটি সূচক ক্রিয়া সহ৷

রেল তৈরি নিয়ামক পৃষ্ঠা সূচী

উত্পন্ন সূচক ভিউতে, এটির মত দেখতে এটি সম্পাদনা করুন।

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

Tuts Social-এ স্বাগতম!

আমাদের চেক আউট করার জন্য ধন্যবাদ!

উপরের কোডে, আমরা jumbotron নামে একটি ক্লাস ব্যবহার করি —এটি একটি বুটস্ট্র্যাপ উপাদান যা আমাদের একটি বিপণন বার্তা প্রদর্শন করতে ভিউপোর্ট প্রসারিত করতে দেয়। আপনি বুটস্ট্র্যাপ ডকুমেন্টেশন থেকে এটি সম্পর্কে আরও জানতে পারেন।

আপনার root_path যোগ করতে আপনার রুট ফাইল খুলুন .

#config/routes.rbRails.application.routes.draw do # এই ফাইলের মধ্যে উপলব্ধ DSL-এর বিস্তারিত জানার জন্য, https://guides.rubyonrails.org/routing.html রুট থেকে দেখুন:"pages#index"end 

OmniAuth-Twitter সেট আপ করা হচ্ছে

আপনাকে একটি নতুন টুইটার অ্যাপ্লিকেশন তৈরি করতে হবে। একটি তৈরি করতে Twitter বিকাশকারী পৃষ্ঠাগুলির এই পৃষ্ঠায় যান। নীচের স্ক্রিনশটে আমার যা আছে তার মতোই সমস্ত প্রয়োজনীয় বিবরণ লিখুন।

কিভাবে একটি রেল অ্যাপ্লিকেশনে OmniAuth-Twitter ব্যবহার করবেন কিভাবে একটি রেল অ্যাপ্লিকেশনে OmniAuth-Twitter ব্যবহার করবেন কিভাবে একটি রেল অ্যাপ্লিকেশনে OmniAuth-Twitter ব্যবহার করবেন

কলব্যাক URL-এর জন্য, আপনার ওয়েবসাইটের ঠিকানা প্লাস "auth/twitter/callback" লিখুন। আপনি যদি স্থানীয় মেশিনে থাকেন তবে আপনার কলব্যাক URL এই হওয়া উচিত:https://127.0.0.1:3000/auth/twitter/callback .

আপনাকে টুইটারে অ্যাপের তথ্য পৃষ্ঠায় পুনঃনির্দেশিত করা হবে। কী এবং অ্যাক্সেস টোকেন-এ নেভিগেট করুন আপনার চাবি পেতে ট্যাব. কনজিউমার কী এবং কনজিউমার সিক্রেট কপি করুন এবং একটি নিরাপদ জায়গায় পেস্ট করুন—আমরা শীঘ্রই সেগুলি ব্যবহার করব।

কলব্যাক ইউআরএল হল সেই ইউআরএল যেখানে সফল প্রমাণীকরণ এবং অনুমোদিত অনুমোদনের পরে একজন ব্যবহারকারীকে অ্যাপের ভিতরে রিডাইরেক্ট করা হবে (অনুরোধে ব্যবহারকারীর ডেটা এবং টোকেনও থাকবে)। সমস্ত OmniAuth কৌশলগুলি আশা করে যে কলব্যাক URL "/auth/:provider/callback" এর সমান হবে৷ :provider কৌশলের নাম নেয়। এই ক্ষেত্রে, কৌশলটি হবে "twitter" যেমন আপনি ইনিশিয়েলাইজারে তালিকাভুক্ত করবেন।

আপনার Gemfile খুলুন omniauth যোগ করতে - twiiter মণি।

#Gemfile...gem 'omniauth-twitter'

এখন আপনার কনফিগার/ইনিশিয়ালাইজার ডিরেক্টরিতে OmniAuth-এর জন্য একটি ইনিশিয়ালাইজার তৈরি করুন। এটি OmniAuth-এর কনফিগারেশন ধরে রাখবে। এটাকে আমার নিচের মত দেখান।

#config/initializers/omniauth.rbRails.application.config.middleware.use OmniAuth::Builder do provider :twitter, ENV['TWITTER_KEY'], ENV['TWITTER_SECRET']শেষ

এই মুহুর্তে আপনাকে নিরাপদে সংরক্ষণ করা কী এবং অ্যাক্সেস টোকেনগুলি ব্যবহার করতে হবে৷ আপনাকে এগুলিকে সুরক্ষিত রাখতে হবে কারণ আপনি যখন আপনার কোড কমিট করবেন তখন আপনি এগুলিকে কোনো পাবলিক রিপোজিটরিতে ঠেলে দিতে চান না৷

আপনি এর জন্য একটি রত্ন ব্যবহার করবেন। আবার আপনার Gemfile খুলুন এবং নীচের রত্ন যোগ করুন. এটিকে আপনার জেমফাইলে যুক্ত করুন এভাবে:

#Gemfile...group :development, :test do... gem 'dotenv-rails'...

রত্নটি ইনস্টল করতে, চালান৷

বান্ডেল ইনস্টল

আপনার অ্যাপ্লিকেশনের হোম ডিরেক্টরিতে, .env নামে একটি ফাইল তৈরি করুন .

এটি খুলুন এবং আপনার কী এবং টোকেন যোগ করুন যেমন:

#.envTWITTER_KEY=xxxxxxxxxxxxxxTWITTER_SECRET=xxxxxxxxxxxxxx

.gitignore খুলুন এবং আপনার তৈরি করা ফাইল যোগ করুন।

#.gitignore...# Ignore .env কী সংরক্ষণ করতে এবং tokens.env অ্যাক্সেস করার জন্য ব্যবহৃত হয়। 

এটি সম্পন্ন হলে, আপনার কী এবং অ্যাক্সেস টোকেন নিরাপদ! কিভাবে dotenv ব্যবহার করবেন সে সম্পর্কে আরও জানতে -rails , GitHub পৃষ্ঠা পড়ুন।

আপনার রুটে কাজ করার সময়। আপনার রুট ফাইল খুলুন এবং নিচের রুট যোগ করুন।

#config/routes.rb... '/auth/:provider/callback' পান, এতে:'sessions#create'

আপনাকে আপনার নেভিগেশনে Twitter সাইন-ইন করার জন্য লিঙ্ক যোগ করতে হবে। আপনার নেভিগেশন ফাইল খুলুন এবং এটির মত দেখতে এটি টুইক করুন৷

উপরের থেকে, আপনি শুধুমাত্র টুইটারে লগ ইন করার লিঙ্কটি দেখাতে চান যখন ব্যবহারকারী সাইন ইন করেন না৷

সেশন তৈরি করা

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

ক্রিয়েট অ্যাকশন ব্যবহারকারীদের জন্য একটি সেশন তৈরি করতে সাহায্য করে যাতে তারা আপনার অ্যাপ্লিকেশনে লগ ইন করতে পারে। এটি ছাড়া, ব্যবহারকারীদের লগ ইন করার কোন উপায় নেই৷

#app/controllers/sessions_controller.rbclass SessionsController  

আপনার একটি current_user প্রয়োজন এই সময়ে পদ্ধতি। এটি আপনাকে একজন ব্যবহারকারী লগ ইন বা আউট করেছে কিনা তা পরীক্ষা করতে সহায়তা করবে৷

app/controllers/application_controller.rb খুলুন এবং নিম্নলিখিত যোগ করুন।

#app/controllers/application_controller.rb... def current_user @current_user ||=User.find(session[:user_id]) if session[:user_id] end helper_method :current_user...

ব্যবহারকারী মডেল

এখন আপনার ব্যবহারকারীদের জন্য একটি মডেল তৈরি করুন। এটি করতে কমান্ডটি চালান৷

রেল তৈরি করা মডেল ব্যবহারকারী প্রদানকারী:স্ট্রিং uid:স্ট্রিং নাম:স্ট্রিং টোকেন:স্ট্রিং গোপন:স্ট্রিং প্রোফাইল_ইমেজ:স্ট্রিং

এটি একটি মাইগ্রেশন ফাইল তৈরি করবে যা দেখতে এইরকম।

#xxxxxx_create_users.rbclass CreateUsers  

এখন রান করে আপনার ডাটাবেস মাইগ্রেট করুন:

rake db:migrate

আপনার ব্যবহারকারী মডেল খুলুন এবং এটি এই মত চেহারা করুন:

#app/models/user.rbclass ব্যবহারকারী  

উপরের কোড ব্যবহারকারীর অন্তর্গত কিছু তথ্য সঞ্চয় করে। এর মধ্যে ব্যবহারকারীর নাম, প্রোফাইল_ইমেজ, টোকেন এবং গোপনীয়তা অন্তর্ভুক্ত রয়েছে। আপনার আবেদনের যদি এর চেয়ে বেশি প্রয়োজন হয়, তাহলে আপনি OmniAuth-Twitter পৃষ্ঠাটি দেখতে পারেন।

সেশন মুছে ফেলা হচ্ছে

আপনার অ্যাপ্লিকেশনে, আপনি ব্যবহারকারীদের লগ আউট করার ক্ষমতা প্রদান করতে চান। আপনার একটি destroy প্রয়োজন হবে৷ আপনার SessionsController-এ অ্যাকশন এই কাজ করার জন্য। তারপর একটি লিঙ্ক আপনার নেভিগেশন যোগ করা হবে.

destroy যোগ করুন আপনার SessionsController-এ অ্যাকশন .

#app/controllers/sessions_controller.rb... def delete if current_user session.delete(:user_id) flash[:success] ="সফলভাবে লগ আউট!" end redirect_to root_path end...

তারপরে আপনার নেভিগেশনে লগ আউট করার জন্য এই লিঙ্কটি যোগ করুন, যাতে আপনার নেভিগেশন এইরকম দেখায়৷

#app/views/layouts/_navigation.html.erb