उपयोगकर्ता प्रमाणीकरण वेब अनुप्रयोगों के लिए एक आवश्यक सुरक्षा सुविधा है, विशेष रूप से वे जो संवेदनशील उपयोगकर्ता डेटा को संभालते हैं या कुछ कार्यक्षमता तक प्रतिबंधित पहुंच प्रदान करते हैं। एप्लिकेशन तक पहुंचने से पहले उपयोगकर्ताओं को स्वयं को प्रमाणित करने की आवश्यकता करके, डेवलपर्स यह सुनिश्चित कर सकते हैं कि केवल अधिकृत उपयोगकर्ता ही एप्लिकेशन के डेटा और कार्यक्षमता को देख या संशोधित कर सकते हैं।
डेविस एक रूबी रत्न है जो रेल अनुप्रयोगों के लिए उपयोगकर्ता प्रमाणीकरण और प्राधिकरण सुविधाएँ प्रदान करता है। यह स्क्रैच से सब कुछ लिखे बिना आपके एप्लिकेशन में साइनअप, लॉगिन और लॉगआउट कार्यक्षमता जोड़ने की प्रक्रिया को कम कर देता है।
इसमें पासवर्ड रीसेट और अकाउंट पुष्टिकरण जैसी अंतर्निहित सुविधाएं हैं। यह विभिन्न प्रमाणीकरण रणनीतियों जैसे ईमेल और पासवर्ड, OAuth, OpenID और बहुत कुछ का समर्थन करता है।
डेविस के पास विस्तृत दस्तावेज़ीकरण है जो बुनियादी और उन्नत दोनों सुविधाओं को शामिल करता है।
इस ट्यूटोरियल में, हम डेविस के साथ एक सरल रेल ऐप बनाएंगे जो उपयोगकर्ताओं को खाते बनाने, साइन इन करने और अपने खातों से साइन आउट करने की अनुमति देता है। हम यह भी कवर करेंगे कि बूटस्ट्रैप का उपयोग करके ऐप में स्टाइल कैसे जोड़ा जाए।
इस ट्यूटोरियल को शुरू करने से पहले, आपको रूबी और रेल्स की बुनियादी बातों की अच्छी समझ होनी चाहिए। इसके अतिरिक्त, आपके कंप्यूटर पर निम्नलिखित सॉफ़्टवेयर स्थापित होना चाहिए:
हम ट्यूटोरियल में बाद में रेल्स 7 में बूटस्ट्रैप का उपयोग करने का तरीका भी बताएंगे।
rails new authApp
यह authApp
निर्देशिका में authApp
नामक एक नया रेल एप्लिकेशन उत्पन्न करेगा। इस निर्देशिका को अपने पसंदीदा टेक्स्ट एडिटर में खोलें।
cd authApp
rails server
एक नया नियंत्रक उत्पन्न करें जो कमांड का उपयोग करके रूट पथ के अनुरोध को संभालेगा: $rails generate controller home index
यह एक एक्शन `इंडेक्स` के साथ `होम` नामक एक नया नियंत्रक बनाता है।
निम्न पंक्ति जोड़कर 'कॉन्फ़िगर' फ़ोल्डर में routes.rb
फ़ाइल में रूट पथ जोड़ें: root 'home#index'
app/views/home
डायरेक्टरी में, आपको एक नई फ़ाइल मिलेगी जिसका नाम है index.html.erb
। इस दृश्य में आपके लैंडिंग पृष्ठ के लिए HTML कोड होगा।
सर्वर को पुनरारंभ करें और अपने नव निर्मित लैंडिंग पृष्ठ को देखने के लिए अपने वेब ब्राउज़र में स्थानीय होस्ट की जाँच करें।
cat config/importmap.rb
चलाकर जांचें कि क्या आपके पास आयात मानचित्र स्थापित हैं। यदि आप ऐसा नहीं करते हैं, तो rails importmap:install
चलाएँ$ bin/importmap pin bootstrap
। यह JS, बूटस्ट्रैप और पॉपरज को config/importmap.rb
में जोड़ता है।import 'bootstrap';
का उपयोग करके app/javascript/application.js
में बूटस्ट्रैप आयात करें; .gem 'bootstrap', '~> 5.1.3'
जोड़ें और bundle install
चलाएं।app/assets/stylesheets/application.css
में, @import "bootstrap";
और फ़ाइल का नाम बदलकर application.scss
कर दें।app/views/layouts/application.html.erb
फ़ाइल में ये शामिल हैं: <%= stylesheet_link_tag "application", "data-turbo-track": "reload" %> <%= javascript_importmap_tags %>
app/views/home/index.html.rb
फ़ाइल में पसंदीदा शैलियाँ जोड़ें।
जेमफ़ाइल पर नेविगेट करें और कमांड का उपयोग करके डेविस रत्न जोड़ें:
gem 'devise', github: 'heartcombo/devise', branch: 'main'
डेविस को स्थापित करने के लिए bundle install
चलाएँ।
अपने प्रोजेक्ट में डेविस सेट करने के लिए rails g devise:install
चलाएँ। यह डेविस के लिए कई स्टार्टर फ़ाइलें उत्पन्न करता है और टर्मिनल में निर्देश प्रदान करता है।
devise.rb
फ़ाइल में लाइन config.navigational_formats = ['*/*', :html, :turbo_stream]
अनकम्मेंट करें। यह टर्बो_स्ट्रीम को एक नेविगेशनल प्रारूप के रूप में जोड़ता है, जो रेल्स 7 के साथ काम करने के लिए डेविस 4.9.2 के लिए आवश्यक है। ऐसा करने में विफल रहने पर एक undefined method user_url
त्रुटि होगी।
app/layouts/applications.html.erb
खोलें और नोटिस और अलर्ट संदेशों के लिए निम्नलिखित पंक्तियाँ जोड़ें:
<p class="notice"><%= notice %></p> <p class="alert"><%= alert %></p>
डेविस के साथ एक यूजर मॉडल बनाने के लिए, टर्मिनल में rails g devise user
चलाएँ। यह उपयोगकर्ता प्रमाणीकरण को लागू करने के लिए आवश्यक फ़ाइलें और कॉन्फ़िगरेशन उत्पन्न करेगा।
माइग्रेशन कमांड चलाकर उपयोगकर्ता तालिका बनाएं: rails db:migrate
।
नई डेविस इनिशियलाइज़र फ़ाइल को लोड करने के लिए सर्वर को पुनरारंभ करें और उपयोगकर्ता प्रमाणीकरण के काम करने के लिए सब कुछ सेट करें।
ईमेल और पासवर्ड दर्ज करके खाता बनाने के लिए साइन-अप फॉर्म तक पहुंचने के लिए अपने ब्राउज़र में http://localhost:3000/users/sign_up
पर जाएं।
index.html.erb
फ़ाइल पर जाएँ और कोड की निम्नलिखित पंक्तियाँ जोड़ें:
<% if user_signed_in? %> <p>Welcome, <%= current_user.email %>!</p> <%= link_to "Sign out", destroy_user_session_path, method: :delete %> <% else %> <%= link_to "Sign in", new_user_session_path %> <% end %>
ये पंक्तियाँ आपके एप्लिकेशन के लिए साइन-अप, साइन-इन और साइन-आउट लिंक बनाती हैं। user_signed_in
डेविस द्वारा प्रदान की गई एक सहायक विधि है जो वर्तमान उपयोगकर्ता के साइन इन होने पर सत्य लौटाती है और अन्यथा गलत लौटाती है।
परिवर्तनों की समीक्षा करने के लिए, बस अपने ब्राउज़र में पृष्ठ को ताज़ा करें। यदि आपने पहले से साइन इन नहीं किया है, तो स्क्रीन पर एक साइन-इन बटन दिखाई देगा। इस पर क्लिक करें और रजिस्ट्रेशन प्रक्रिया पूरी करें। एक बार जब आप सफलतापूर्वक साइन अप कर लेते हैं, तो आपको लैंडिंग पृष्ठ पर निर्देशित किया जाएगा जहां आप वर्तमान में साइन-इन किए गए उपयोगकर्ता का ईमेल पता, एक स्वागत संदेश और एक साइन-आउट बटन देख सकते हैं।
इन चरणों का पालन करके, आपने डेविस रत्न को सफलतापूर्वक एकीकृत कर लिया है और अपने एप्लिकेशन के लिए उपयोगकर्ता प्रमाणीकरण स्थापित कर लिया है।
इस ट्यूटोरियल में, हमने अपने रेल ऐप में उपयोगकर्ता प्रमाणीकरण जोड़ने के लिए डेविस का उपयोग किया। हमने एक एप्लिकेशन विकसित किया है जहां उपयोगकर्ता खाते बना सकते हैं, साइन अप कर सकते हैं और साइन आउट कर सकते हैं। हमने प्रोजेक्ट के स्वरूप को बेहतर बनाने के लिए बूटस्ट्रैप को भी एकीकृत किया। डेविस के बारे में अपने ज्ञान का विस्तार करने और आगे के सहायकों और तरीकों का पता लगाने के लिए, डेविस गिटहब रिपॉजिटरी पर रीडमी फ़ाइल देखें।