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

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

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

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

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

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

आप सीखेंगे:

  • OAuth 2.0 क्या है और इसकी आवश्यकता क्यों है
  • JWT टोकन कैसे काम करते हैं
  • Express पर प्राधिकरण सर्वर कैसे सेट करें
  • middleware के साथ रूट्स को कैसे सुरक्षित करें


OAuth 2.0 की मूल बातें: फ्लो और भूमिकाएँ

OAuth 2.0 चार भूमिकाओं को परिभाषित करता है: Resource Owner (उपयोगकर्ता), Client (एप्लिकेशन), Authorization Server (टोकन जारी करने वाला सर्वर) और Resource Server (डेटा प्रदान करने वाला सर्वर)। सबसे सामान्य फ्लो Authorization Code Grant है, जो वेब एप्लिकेशन में उपयोग किया जाता है।

इस लेख में, हम बाहरी प्रदाताओं (Google, GitHub) के बजाय JWT का उपयोग करके Resource Server और Authorization Server के कार्यान्वयन पर ध्यान केंद्रित करेंगे। यह आपको प्रक्रिया पर पूर्ण नियंत्रण देगा।



निर्भरताओं की स्थापना

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

npm init -ynpm install express jsonwebtoken bcrypt dotenv cors

पैकेजों का विवरण:

  • express — सर्वर बनाने के लिए फ्रेमवर्क
  • jsonwebtoken — JWT बनाना और सत्यापित करना
  • bcrypt — पासवर्ड हैश करना
  • dotenv — पर्यावरण चर के साथ काम करना
  • cors — API के लिए CORS कॉन्फ़िगरेशन


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

JWT एक कॉम्पैक्ट टोकन है जिसमें तीन भाग होते हैं: हेडर, पेलोड और हस्ताक्षर। हम सफल लॉगिन के बाद उपयोगकर्ताओं को प्रमाणित करने के लिए इसका उपयोग करेंगे।



सर्वर और उपयोगकर्ता मॉडल की स्थापना

एक फ़ाइल server.js बनाएं और मूल संरचना परिभाषित करें:

require('dotenv').config();const express = require('express');const jwt = require('jsonwebtoken');const bcrypt = require('bcrypt');const cors = require('cors');

const app = express();app.use(express.json());app.use(cors());

const PORT = process.env.PORT || 3000;const JWT_SECRET = process.env.JWT_SECRET || 'your-secret-key';

// उपयोगकर्ताओं का अस्थायी भंडारण (प्रोडक्शन में डेटाबेस का उपयोग करें)const users = [];


पंजीकरण और पासवर्ड हैशिंग

पंजीकरण के दौरान, पासवर्ड को bcrypt के साथ हैश किया जाना चाहिए:

app.post('/api/register', async (req, res) => {    try {        const { email, password } = req.body;                // मौजूदा उपयोगकर्ता की जाँच        const existingUser = users.find(u => u.email === email);        if (existingUser) {            return res.status(400).json({ message: 'उपयोगकर्ता पहले से मौजूद है' });        }

// पासवर्ड हैशिंग const hashedPassword = await bcrypt.hash(password, 10); const newUser = { id: users.length + 1, email, password: hashedPassword }; users.push(newUser);

res.status(201).json({ message: 'उपयोगकर्ता बनाया गया' }); } catch (error) { res.status(500).json({ message: 'सर्वर त्रुटि' }); }});


लॉगिन और JWT टोकन जनरेशन

क्रेडेंशियल्स की जाँच के बाद, jsonwebtoken के साथ टोकन जनरेट करें:

app.post('/api/login', async (req, res) => {    try {        const { email, password } = req.body;                // उपयोगकर्ता की खोज        const user = users.find(u => u.email === email);        if (!user) {                

ब्लॉग

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