JsonWebToken JavaScript (Node.js): पूर्ण गाइड उदाहरण सहित

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

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

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

JsonWebToken JavaScript (Node.js): पूर्ण गाइड उदाहरण सहित

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

JsonWebToken लाइब्रेरी (जिसे अक्सर jsonwebtoken या jwt के नाम से जाना जाता है) Node.js वातावरण में JSON Web Tokens (JWT) के साथ काम करने के लिए सबसे लोकप्रिय लाइब्रेरी में से एक है। JWT एक कॉम्पैक्ट और स्व-निहित तरीका है जिससे JSON ऑब्जेक्ट के रूप में पक्षों के बीच जानकारी स्थानांतरित की जा सकती है। इस जानकारी को सत्यापित किया जा सकता है और इस पर भरोसा किया जा सकता है क्योंकि यह डिजिटल हस्ताक्षर से हस्ताक्षरित होती है। JWT को गुप्त कुंजी (HMAC एल्गोरिदम) या सार्वजनिक/निजी कुंजी जोड़ी (RSA या ECDSA एल्गोरिदम) का उपयोग करके हस्ताक्षरित किया जा सकता है।

इस लाइब्रेरी का मुख्य उद्देश्य वेब एप्लिकेशन और API में ऑथराइजेशन और ऑथेंटिकेशन तंत्र को लागू करना है। जब कोई उपयोगकर्ता सिस्टम में सफलतापूर्वक लॉग इन करता है, तो सर्वर एक JWT बनाता है और इसे क्लाइंट को भेजता है। फिर क्लाइंट प्रत्येक बाद के अनुरोध के साथ इस टोकन को भेजता है, जिससे सर्वर को सर्वर पर सत्र डेटा संग्रहीत किए बिना उपयोगकर्ता की पहचान सत्यापित करने की अनुमति मिलती है। यह JWT को RESTful API, माइक्रोसर्विस आर्किटेक्चर और सिंगल-पेज एप्लिकेशन (SPA) बनाने के लिए एक आदर्श समाधान बनाता है।

jsonwebtoken लाइब्रेरी टोकन बनाने (sign), सत्यापित करने (verify) और डिकोड करने (decode) के लिए उपकरणों का एक पूरा सेट प्रदान करती है। यह HS256, RS256, ES256 सहित सभी मानक हस्ताक्षर एल्गोरिदम का समर्थन करती है, और आपको टोकन की समय सीमा को लचीले ढंग से सेट करने, कस्टम फ़ील्ड (claims) जोड़ने और सार्वजनिक/निजी कुंजियों के साथ काम करने की अनुमति देती है। अपनी विश्वसनीयता और सरलता के कारण, इस लाइब्रेरी का उपयोग दुनिया भर में हजारों प्रोजेक्ट्स में किया जाता है और यह Node.js इकोसिस्टम में JWT के साथ काम करने के लिए डी-फैक्टो मानक है।

इंस्टॉलेशन

अपने Node.js प्रोजेक्ट में JsonWebToken लाइब्रेरी स्थापित करने के लिए टर्मिनल में निम्नलिखित कमांड चलाएँ:

npm install jsonwebtoken

यदि आप Yarn का उपयोग कर रहे हैं:

yarn add jsonwebtoken

इंस्टॉलेशन के बाद, आप लाइब्रेरी को अपने कोड में इम्पोर्ट कर सकते हैं:

const jwt = require('jsonwebtoken');
// या ES-मॉड्यूल के लिए:
// import jwt from 'jsonwebtoken';

त्वरित शुरुआत — न्यूनतम कार्यशील उदाहरण

आइए एक सरल उदाहरण बनाते हैं जो JWT टोकन बनाने और सत्यापित करने को प्रदर्शित करता है:

const jwt = require('jsonwebtoken');

// गुप्त कुंजी (वास्तविक प्रोजेक्ट में इसे .env में स्टोर करें)
const secretKey = 'my-super-secret-key-123';

// वह डेटा जिसे हम टोकन में एनकोड करना चाहते हैं (payload)
const payload = {
  userId: 12345,
  username: 'john_doe',
  role: 'user'
};

// 1. टोकन बनाना
const token = jwt.sign(payload, secretKey, { expiresIn: '1h' });
console.log('बनाया गया टोकन:', token);

// 2. टोकन सत्यापित करना
try {
  const decoded = jwt.verify(token, secretKey);
  console.log('डिकोड किया गया डेटा:', decoded);
  // आउटपुट: { userId: 12345, username: 'john_doe', role: 'user', iat: ..., exp: ... }
} catch (err) {
  console.error('टोकन सत्यापन में त्रुटि:', err.message);
}

// 3. हस्ताक्षर सत्यापन के बिना डिकोड करना (ऑथराइजेशन के लिए अनुशंसित नहीं!)
const decodedWithoutVerify = jwt.decode(token);
console.log('बिना सत्यापन के डिकोड किया गया:', decodedWithoutVerify);

यह उदाहरण तीन मुख्य ऑपरेशन दिखाता है: sign() का उपयोग करके टोकन बनाना, verify() का उपयोग करके इसकी प्रामाणिकता सत्यापित करना, और decode() का उपयोग करके हस्ताक्षर सत्यापन के बिना सरल डिकोडिंग करना।

मुख्य तरीके/फंक्शन/क्लास

1. jwt.sign(payload, secretOrPrivateKey, [options, callback])

सिग्नेचर: jwt.sign(payload: Object|Buffer, secretOrPrivateKey: string|Buffer, options?: Object, callback?: Function) => string|void

यह क्या करता है: JWT टोकन बनाता है (हस्ताक्षर करता है)। यह payload (डेटा), गुप्त कुंजी और वैकल्पिक विकल्पों को स्वीकार करता है।

अनुशंसाएँ