उपयोगकर्ता प्रमाणीकरण वेब अनुप्रयोगों के लिए एक आवश्यक सुरक्षा सुविधा है, विशेष रूप से वे जो संवेदनशील उपयोगकर्ता डेटा को संभालते हैं या कुछ कार्यक्षमता तक प्रतिबंधित पहुंच प्रदान करते हैं। एप्लिकेशन तक पहुंचने से पहले उपयोगकर्ताओं को स्वयं को प्रमाणित करने की आवश्यकता करके, डेवलपर्स यह सुनिश्चित कर सकते हैं कि केवल अधिकृत उपयोगकर्ता ही एप्लिकेशन के डेटा और कार्यक्षमता को देख या संशोधित कर सकते हैं।
डेविस क्या है?
डेविस एक रूबी रत्न है जो रेल अनुप्रयोगों के लिए उपयोगकर्ता प्रमाणीकरण और प्राधिकरण सुविधाएँ प्रदान करता है। यह स्क्रैच से सब कुछ लिखे बिना आपके एप्लिकेशन में साइनअप, लॉगिन और लॉगआउट कार्यक्षमता जोड़ने की प्रक्रिया को कम कर देता है।
इसमें पासवर्ड रीसेट और अकाउंट पुष्टिकरण जैसी अंतर्निहित सुविधाएं हैं। यह विभिन्न प्रमाणीकरण रणनीतियों जैसे ईमेल और पासवर्ड, OAuth, OpenID और बहुत कुछ का समर्थन करता है।
डेविस के पास विस्तृत दस्तावेज़ीकरण है जो बुनियादी और उन्नत दोनों सुविधाओं को शामिल करता है।
इस ट्यूटोरियल में, हम डेविस के साथ एक सरल रेल ऐप बनाएंगे जो उपयोगकर्ताओं को खाते बनाने, साइन इन करने और अपने खातों से साइन आउट करने की अनुमति देता है। हम यह भी कवर करेंगे कि बूटस्ट्रैप का उपयोग करके ऐप में स्टाइल कैसे जोड़ा जाए।
आवश्यक शर्तें
इस ट्यूटोरियल को शुरू करने से पहले, आपको रूबी और रेल्स की बुनियादी बातों की अच्छी समझ होनी चाहिए। इसके अतिरिक्त, आपके कंप्यूटर पर निम्नलिखित सॉफ़्टवेयर स्थापित होना चाहिए:
- रूबी: यदि आपने रूबी को अपनी मशीन पर स्थापित नहीं किया है, तो आप आधिकारिक से नवीनतम संस्करण डाउनलोड कर सकते हैं
रूबी वेबसाइट . - रूबी ऑन रेल्स: आपको निम्नलिखित द्वारा अपना स्थानीय विकास वातावरण स्थापित करना चाहिए
रेल मार्गदर्शक। - Node.js: इंस्टॉल करें
नोड.जे.एस परिसंपत्ति पाइपलाइन का प्रबंधन करने और जावास्क्रिप्ट कोड चलाने के लिए। - धागा
- SQLite3
- विज़ुअल स्टूडियो कोड जैसा एक टेक्स्ट एडिटर
- Google Chrome जैसा ब्राउज़र
हम ट्यूटोरियल में बाद में रेल्स 7 में बूटस्ट्रैप का उपयोग करने का तरीका भी बताएंगे।
चरण 1: एक नया रेल ऐप बनाएं
- एक नया रेल ऐप बनाने के लिए, अपनी पसंदीदा निर्देशिका में एक टर्मिनल खोलें और कमांड चलाएँ:
rails new authApp
यह authApp
निर्देशिका में authApp
नामक एक नया रेल एप्लिकेशन उत्पन्न करेगा। इस निर्देशिका को अपने पसंदीदा टेक्स्ट एडिटर में खोलें।
- टाइप करके ऐप निर्देशिका पर नेविगेट करें:
cd authApp
- अपने टर्मिनल में, अपना रेल सर्वर चलाकर प्रारंभ करें:
rails server
- रेल्स स्वागत पृष्ठ तक पहुंचने के लिए अपने ब्राउज़र में http://127.0.0.1:3000/ खोलें।
चरण 2: एक लैंडिंग पृष्ठ बनाएं
एक नया नियंत्रक उत्पन्न करें जो कमांड का उपयोग करके रूट पथ के अनुरोध को संभालेगा:
$rails generate controller home index
यह एक एक्शन `इंडेक्स` के साथ `होम` नामक एक नया नियंत्रक बनाता है।
निम्न पंक्ति जोड़कर 'कॉन्फ़िगर' फ़ोल्डर में
routes.rb
फ़ाइल में रूट पथ जोड़ें:root 'home#index'
app/views/home
डायरेक्टरी में, आपको एक नई फ़ाइल मिलेगी जिसका नाम हैindex.html.erb
। इस दृश्य में आपके लैंडिंग पृष्ठ के लिए HTML कोड होगा।सर्वर को पुनरारंभ करें और अपने नव निर्मित लैंडिंग पृष्ठ को देखने के लिए अपने वेब ब्राउज़र में स्थानीय होस्ट की जाँच करें।
चरण 3: बूटस्ट्रैप स्थापित और कॉन्फ़िगर करें
- इस अनुभाग में, हम आयात मानचित्रों का उपयोग करेंगे, जो जेएस को लोड करते हैं। सबसे पहले,
cat config/importmap.rb
चलाकर जांचें कि क्या आपके पास आयात मानचित्र स्थापित हैं। यदि आप ऐसा नहीं करते हैं, तोrails importmap:install
चलाएँ - इसके बाद, आयात मानचित्रों के माध्यम से बूटस्ट्रैप 5 जेएस को रेल में जोड़ें:
$ 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
फ़ाइल में पसंदीदा शैलियाँ जोड़ें। - सर्वर को पुनः लोड करें और परिवर्तन देखें।
चरण 4: डिवाइस को स्थापित और कॉन्फ़िगर करें
जेमफ़ाइल पर नेविगेट करें और कमांड का उपयोग करके डेविस रत्न जोड़ें:
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>
चरण 5: डिवाइस के साथ उपयोगकर्ता मॉडल बनाना
डेविस के साथ एक यूजर मॉडल बनाने के लिए, टर्मिनल में
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
डेविस द्वारा प्रदान की गई एक सहायक विधि है जो वर्तमान उपयोगकर्ता के साइन इन होने पर सत्य लौटाती है और अन्यथा गलत लौटाती है।
- परिवर्तनों की समीक्षा करने के लिए ब्राउज़र में अपने पृष्ठ को ताज़ा करें।
परिवर्तनों की समीक्षा करने के लिए, बस अपने ब्राउज़र में पृष्ठ को ताज़ा करें। यदि आपने पहले से साइन इन नहीं किया है, तो स्क्रीन पर एक साइन-इन बटन दिखाई देगा। इस पर क्लिक करें और रजिस्ट्रेशन प्रक्रिया पूरी करें। एक बार जब आप सफलतापूर्वक साइन अप कर लेते हैं, तो आपको लैंडिंग पृष्ठ पर निर्देशित किया जाएगा जहां आप वर्तमान में साइन-इन किए गए उपयोगकर्ता का ईमेल पता, एक स्वागत संदेश और एक साइन-आउट बटन देख सकते हैं।
इन चरणों का पालन करके, आपने डेविस रत्न को सफलतापूर्वक एकीकृत कर लिया है और अपने एप्लिकेशन के लिए उपयोगकर्ता प्रमाणीकरण स्थापित कर लिया है।
निष्कर्ष
इस ट्यूटोरियल में, हमने अपने रेल ऐप में उपयोगकर्ता प्रमाणीकरण जोड़ने के लिए डेविस का उपयोग किया। हमने एक एप्लिकेशन विकसित किया है जहां उपयोगकर्ता खाते बना सकते हैं, साइन अप कर सकते हैं और साइन आउट कर सकते हैं। हमने प्रोजेक्ट के स्वरूप को बेहतर बनाने के लिए बूटस्ट्रैप को भी एकीकृत किया। डेविस के बारे में अपने ज्ञान का विस्तार करने और आगे के सहायकों और तरीकों का पता लगाने के लिए, डेविस गिटहब रिपॉजिटरी पर रीडमी फ़ाइल देखें।