OAuth 2.0 और JWT ऑथराइजेशन JavaScript में: शुरुआती के लिए पूरी गाइड

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

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

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

OAuth 2.0 और JWT का परिचय: ये क्या हैं और क्यों ज़रूरी हैं?

\n

आधुनिक वेब एप्लिकेशन शायद ही कभी बिना ऑथराइजेशन सिस्टम के चलते हैं। चाहे Google के ज़रिए लॉगिन हो, API तक पहुँच हो, या आपके Node.js एप्लिकेशन में रूट्स की सुरक्षा हो — आपको OAuth 2.0 और JWT (JSON Web Tokens) की ज़रूरत पड़ेगी। ये तकनीकें क्लाइंट और सर्वर के बीच सुरक्षित डेटा एक्सचेंज के लिए डी-फैक्टो स्टैंडर्ड बन गई हैं।

\n

इस लेख में, हम समझेंगे कि OAuth 2.0 और JWT कैसे काम करते हैं, और JavaScript (Node.js) पर एक सरल ऑथराइजेशन सिस्टम बनाएंगे। यह सामग्री शुरुआती डेवलपर्स के लिए है, इसलिए हम थ्योरी से प्रैक्टिस की ओर बढ़ेंगे, साथ में विस्तृत कोड उदाहरण भी होंगे।

\n\n

भाग 1: OAuth 2.0 क्या है और यह कैसे काम करता है?

\n

OAuth 2.0 एक ऑथराइजेशन प्रोटोकॉल है जो एप्लिकेशन को पासवर्ड ट्रांसफर किए बिना यूज़र के संसाधनों तक सीमित पहुँच प्राप्त करने की अनुमति देता है। कल्पना करें कि आप अपने Google अकाउंट के ज़रिए किसी वेबसाइट पर लॉगिन करना चाहते हैं। OAuth 2.0 इसी प्रक्रिया को संभालता है।

\n

OAuth 2.0 में मुख्य भूमिकाएँ

\n
    \n
  • Resource Owner — वह यूज़र जो डेटा का मालिक है।
  • \n
  • Client — आपका एप्लिकेशन (जैसे, Node.js सर्वर)।
  • \n
  • Authorization Server — वह सर्वर जो टोकन जारी करता है (जैसे, Google, GitHub)।
  • \n
  • Resource Server — वह सर्वर जो यूज़र का डेटा स्टोर करता है।
  • \n
\n

OAuth 2.0 का सामान्य फ्लो (Authorization Code Grant)

\n
    \n
  1. यूज़र "Google से लॉगिन करें" बटन पर क्लिक करता है।
  2. \n
  3. एप्लिकेशन उसे Google के ऑथराइजेशन सर्वर पर रीडायरेक्ट करता है।
  4. \n
  5. यूज़र अनुमति देता है।
  6. \n
  7. Google एप्लिकेशन सर्वर पर authorization code भेजता है।
  8. \n
  9. सर्वर इस कोड को access token में बदलता है।
  10. \n
  11. सर्वर यूज़र के डेटा तक पहुँचने के लिए access token का उपयोग करता है।
  12. \n
\n

व्यवहार में, सरल एप्लिकेशन के लिए अक्सर JWT को एक्सेस टोकन के रूप में उपयोग किया जाता है।

\n\n

भाग 2: JWT — संरचना और कार्य सिद्धांत

\n

JWT (JSON Web Token) दो पक्षों के बीच JSON ऑब्जेक्ट के रूप में जानकारी स्थानांतरित करने का एक कॉम्पैक्ट और स्व-निहित तरीका है। टोकन पर हस्ताक्षर किया जाता है, इसलिए इसे डेटाबेस से संपर्क किए बिना सत्यापित किया जा सकता है।

\n

JWT की संरचना

\n

JWT तीन भागों से बना होता है, जो डॉट्स (.) से अलग होते हैं:

\n
header.payload.signature
\n
    \n
  • Header — इसमें टोकन का प्रकार और हस्ताक्षर एल्गोरिदम (जैसे, HS256) होता है।
  • \n
  • Payload — डेटा (claims), जैसे, यूज़र ID, भूमिका, समय सीमा।
  • \n
  • Signature — गुप्त कुंजी (secret key) का उपयोग करके बनाया गया हस्ताक्षर।
  • \n
\n

डिकोड किए गए JWT का उदाहरण

\n
{\n  "alg": "HS256",\n  "typ": "JWT"\n}\n.\n{\n  "sub": "1234567890",\n  "name": "राहुल शर्मा",\n  "iat": 1516239022,\n  "exp": 1516242622\n}\n.\n[signature]
\n

महत्वपूर्ण: payload एन्क्रिप्टेड नहीं है, केवल हस्ताक्षरित है। JWT में कभी भी गोपनीय डेटा (पासवर्ड) स्टोर न करें!

\n\n

भाग 3: Node.js पर JWT ऑथराइजेशन लागू करना

\n

अब प्रैक्टिकल की ओर बढ़ते हैं। हम Express.js पर JWT-ऑथराइजेशन के साथ एक सरल REST API बनाएंगे। इसके लिए हमें jsonwebtoken और bcryptjs लाइब्रेरीज़ की ज़रूरत होगी।

\n

चरण 1: डिपेंडेंसीज़ इंस्टॉल करना

\n
npm init -y\nnpm install express jsonwebtoken bcryptjs dotenv\nnpm install --save-dev nodemon
\n

चरण 2: सर्वर की बेसिक सेटअप

\n
// server.js\nrequire('dotenv').config();\nconst express = require('express');\nconst jwt = require('jsonwebtoken');\nconst bcrypt = require('bcryptjs');\n\nconst app = express();\napp.use(express.json());\n\nconst users = []; // असली प्रोजेक्ट में — डेटाबेस\n\nconst PORT = process.env.PORT || 3000;\nconst JWT_SECRET = process.env.JWT_SECRET || 'mysecretkey123';\n\napp.listen(PORT, () => {\n  console.log(`सर्वर पोर्ट ${PORT} पर चल रहा है`);\n});

                
                

ब्लॉग

पुस्तक अनुशंसाएँ