OAuth 2.0 और JWT प्राधिकरण JavaScript पर: पूर्ण गाइड

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

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

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

OAuth 2.0 और JWT प्राधिकरण JavaScript पर: व्यवहार में

\n\n

आधुनिक वेब एप्लिकेशन शायद ही कभी प्रमाणीकरण और प्राधिकरण प्रणाली के बिना काम करते हैं। दो सबसे लोकप्रिय मानक — OAuth 2.0 और JWT (JSON Web Tokens) — अक्सर सुरक्षित और स्केलेबल समाधान बनाने के लिए एक साथ उपयोग किए जाते हैं। इस लेख में, हम व्यावहारिक कोड उदाहरणों के साथ JavaScript (Node.js) पर OAuth 2.0 और JWT प्राधिकरण को लागू करने का तरीका समझेंगे।

\n\n

यह सामग्री शुरुआती और अनुभवी डेवलपर्स दोनों के लिए उपयोगी होगी, जो टोकन और प्रतिनिधि पहुँच के तंत्र को गहराई से समझना चाहते हैं।

\n\n

OAuth 2.0 और JWT क्या हैं?

\n\n

OAuth 2.0 एक प्राधिकरण प्रोटोकॉल है जो एप्लिकेशन को उपयोगकर्ता की साख प्रदान किए बिना उसके संसाधनों तक सीमित पहुँच प्राप्त करने की अनुमति देता है। उदाहरण के लिए, आप Google या GitHub के माध्यम से किसी साइट पर लॉग इन कर सकते हैं — यही OAuth 2.0 है।

\n\n

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

\n\n

संयोजन में, OAuth 2.0 टोकन जारी करने के प्रोटोकॉल के रूप में कार्य करता है, और JWT स्वयं एक्सेस टोकन के प्रारूप के रूप में कार्य करता है।

\n\n

सर्वर सेटअप और निर्भरताएँ स्थापित करना

\n\n

शुरू करने के लिए, हम Express.js पर एक सरल सर्वर बनाएंगे और आवश्यक पैकेज स्थापित करेंगे:

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

प्रोजेक्ट संरचना:

\n
    \n
  • server.js — मुख्य सर्वर फ़ाइल
  • \n
  • .env — पर्यावरण चर
  • \n
  • middleware/auth.js — JWT सत्यापन के लिए middleware
  • \n
  • routes/auth.js — प्रमाणीकरण मार्ग
  • \n
\n\n

JWT प्राधिकरण का कार्यान्वयन

\n\n

हम JWT टोकन की बुनियादी पीढ़ी और सत्यापन से शुरू करेंगे। server.js बनाएँ:

\n\n
const express = require('express');\nconst jwt = require('jsonwebtoken');\nrequire('dotenv').config();\n\nconst app = express();\napp.use(express.json());\n\nconst SECRET_KEY = process.env.JWT_SECRET || 'my_secret_key';\n\n// टोकन जनरेशन\nfunction generateToken(user) {\n  const payload = {\n    id: user.id,\n    email: user.email,\n    role: user.role\n  };\n  return jwt.sign(payload, SECRET_KEY, { expiresIn: '1h' });\n}\n\n// लॉगिन के लिए उदाहरण मार्ग\napp.post('/login', (req, res) => {\n  const { email, password } = req.body;\n  // यहाँ डेटाबेस में जाँच होनी चाहिए\n  const user = { id: 1, email, role: 'user' };\n  const token = generateToken(user);\n  res.json({ token });\n});\n\n// टोकन सत्यापन के लिए Middleware\nfunction authenticateToken(req, res, next) {\n  const authHeader = req.headers['authorization'];\n  const token = authHeader && authHeader.split(' ')[1]; // Bearer TOKEN\n\n  if (!token) {\n    return res.status(401).json({ error: 'टोकन प्रदान नहीं किया गया' });\n  }\n\n  jwt.verify(token, SECRET_KEY, (err, user) => {\n    if (err) {\n      return res.status(403).json({ error: 'अमान्य टोकन' });\n    }\n    req.user = user;\n    next();\n  });\n}\n\n// सुरक्षित मार्ग\napp.get('/profile', authenticateToken, (req, res) => {\n  res.json({ message: 'पहुँच अनुमत', user: req.user });\n});\n\napp.listen(3000, () => console.log('सर्वर पोर्ट 3000 पर शुरू हुआ'));
\n\n

Google के माध्यम से OAuth 2.0 एकीकरण

\n\n

अब हम Google को प्रदाता के रूप में उपयोग करके OAuth 2.0 जोड़ेंगे। routes/auth.js बनाएँ:

\n\n
const express = require('express');\nconst axios = require('axios');\nconst jwt = require('jsonwebtoken');\nconst router = express.Router();\n\nconst GOOGLE_CLIENT_ID = process.env.GOOGLE_CLIENT_ID;\nconst GOOGLE_CLIENT_SECRET = process.env.GOOGLE_CLIENT_SECRET;\nconst REDIRECT_URI = 'http://localhost:3000/auth/google/callback';\nconst JWT_SECRET = process.env.JWT_SECRET;\n\n// शुरुआत के लिए मार्ग                

ब्लॉग

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