Passport.js JavaScript (Node.js): पूरी गाइड उदाहरणों के साथ

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

Passport.js क्या है और इसकी आवश्यकता क्यों है?

Passport.js Node.js एप्लिकेशन में प्रमाणीकरण (authentication) के लिए सबसे लोकप्रिय और लचीली लाइब्रेरी है। इसे Express.js के लिए "middleware" (मध्यवर्ती परत) के सिद्धांत पर डिज़ाइन किया गया है, जिससे इसे किसी भी वेब सर्वर में आसानी से एकीकृत किया जा सकता है। Passport.js का मुख्य उद्देश्य उपयोगकर्ताओं की पहचान सत्यापित करने की प्रक्रिया को सरल बनाना है, जो दर्जनों विभिन्न प्रमाणीकरण रणनीतियों (strategies) के साथ काम करने के लिए एक समान इंटरफ़ेस प्रदान करता है।

इस लाइब्रेरी की आवश्यकता क्यों है? आधुनिक वेब डेवलपमेंट में, प्रमाणीकरण केवल लॉगिन और पासवर्ड की जाँच करने तक सीमित नहीं है। उपयोगकर्ता सोशल मीडिया (Google, Facebook), कॉर्पोरेट सिस्टम (LDAP, SAML), JWT टोकन या एक बार के कोड के माध्यम से लॉगिन करने की उम्मीद करते हैं। इनमें से प्रत्येक विधि के लिए अलग-अलग लॉजिक, API कॉल और एरर हैंडलिंग की आवश्यकता होती है। Passport.js इस जटिलता को दूर करता है और एक समान पैटर्न प्रदान करता है: आप एक "Strategy" चुनते हैं, उसे कॉन्फ़िगर करते हैं, और लाइब्रेरी रिक्वेस्ट, सेशन और रीडायरेक्ट को संभालने का सारा काम अपने हाथ में ले लेती है।

Passport.js के मुख्य लाभ:

  • मॉड्यूलरिटी: 500 से अधिक रणनीतियाँ, जो लगभग सभी मौजूदा प्रमाणीकरण विधियों को कवर करती हैं।
  • आसान एकीकरण: Express.js middleware के रूप में काम करता है, जिससे कोड साफ और अनुमानित रहता है।
  • डेटाबेस से स्वतंत्रता: लाइब्रेरी उपयोगकर्ताओं को संग्रहीत करने का कोई तरीका नहीं थोपती – आप खुद तय करते हैं कि डेटा कहाँ और कैसे स्टोर करना है (MongoDB, PostgreSQL, फ़ाइलें)।
  • सुरक्षा: सेशन के लिए अंतर्निहित समर्थन, CSRF से सुरक्षा (अतिरिक्त मॉड्यूल के माध्यम से) और पासवर्ड की सही हैंडलिंग।
  • लचीलापन: आप रणनीतियों को जोड़ सकते हैं, अपनी खुद की बना सकते हैं, और किसी भी व्यावसायिक आवश्यकता के अनुसार व्यवहार को अनुकूलित कर सकते हैं।

यह लेख आपकी संपूर्ण मार्गदर्शिका होगा। हम इंस्टॉलेशन से शुरू करेंगे, त्वरित शुरुआत करेंगे, सभी मुख्य विधियों और फ़ंक्शन का विस्तार से अध्ययन करेंगे, और फिर एक वास्तविक व्यावहारिक उदाहरण के साथ ज्ञान को मजबूत करेंगे।

लाइब्रेरी की स्थापना (Installation)

Passport.js और आवश्यक रणनीतियों की स्थापना npm पैकेज मैनेजर के माध्यम से की जाती है। बुनियादी स्थापना में लाइब्रेरी का कोर और एक रणनीति शामिल है (अक्सर लॉगिन/पासवर्ड प्रमाणीकरण के लिए passport-local).

# Passport.js कोर की स्थापना
npm install passport

# स्थानीय प्रमाणीकरण (लॉगिन/पासवर्ड) के लिए रणनीति की स्थापना
npm install passport-local

# JWT (JSON Web Tokens) के लिए रणनीति की स्थापना
npm install passport-jwt

# OAuth 2.0 (Google, Facebook आदि) के लिए रणनीति की स्थापना
npm install passport-google-oauth20

# अतिरिक्त: सेशन के साथ काम करने के लिए (यदि JWT का उपयोग नहीं कर रहे हैं)
npm install express-session

# पासवर्ड हैश करने के लिए (अनुशंसित)
npm install bcryptjs

ध्यान दें: passport केवल कोर है। प्रमाणीकरण के विशिष्ट तरीके (Google, Facebook, स्थानीय आदि के माध्यम से) अलग-अलग पैकेज-रणनीतियों के माध्यम से कार्यान्वित किए जाते हैं। कुल मिलाकर सैकड़ों हैं, और आप आधिकारिक साइट passportjs.org/packages/ पर अपनी ज़रूरत की रणनीति पा सकते हैं।

कोड उदाहरण के साथ त्वरित शुरुआत (Quick Start)

आइए स्थानीय प्रमाणीकरण (लॉगिन और पासवर्ड) के साथ Express.js पर एक न्यूनतम एप्लिकेशन बनाएं। यह उदाहरण Passport.js के काम करने की बुनियादी आर्किटेक्चर दिखाएगा।

चरण 1: app.js फ़ाइल बनाएं और डिपेंडेंसी इंस्टॉल करें।

const express = require('express');
const passport = require('passport');
const LocalStrategy = require('passport-local').Strategy;
const session = require('express-session');
const bcrypt = require('bcryptjs');

const app = express();

// रिक्वेस्ट बॉडी को पार्स करने के लिए middleware सेटअप
app.use(express.urlencoded({ extended: false }));
app.use(express.json());

// सेशन सेटअप (सेशन के साथ passport के लिए अनिवार्य)
app.use(session({
    secret: 'your-secret-key',
    resave: false,
    saveU                    

अनुशंसाएँ