"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > प्रमाणीकरण प्रकार: JWT, OAuth, और Google और Facebook के साथ सुरक्षित एकीकरण

प्रमाणीकरण प्रकार: JWT, OAuth, और Google और Facebook के साथ सुरक्षित एकीकरण

2024-10-31 को प्रकाशित
ब्राउज़ करें:652

Authentication Types: JWT, OAuth, and Secure Integration with Google and Facebook

आधुनिक वेब विकास की दुनिया में, प्रमाणीकरण आपके एप्लिकेशन तक सुरक्षित पहुंच सुनिश्चित करने के लिए आवश्यक है। उपयोगकर्ता प्रमाणीकरण को संभालने के कई तरीके हैं, और कुछ सबसे लोकप्रिय तरीकों में JWT (JSON वेब टोकन) और OAuth शामिल हैं। इस पोस्ट में, हम इन तरीकों का पता लगाएंगे और आपको दिखाएंगे कि आपके सिस्टम को सुरक्षित रखते हुए प्रमाणीकरण को Google और Facebook जैसी लोकप्रिय सेवाओं के साथ कैसे एकीकृत किया जाए।

प्रमाणीकरण क्या है?

प्रमाणीकरण किसी सिस्टम तक पहुंचने का प्रयास करने वाले उपयोगकर्ता की पहचान सत्यापित करने की प्रक्रिया है। जब आप किसी ऐप में लॉग इन करते हैं, तो प्रमाणीकरण यह सुनिश्चित करता है कि आप वही हैं जो आप कहते हैं।

प्रमाणीकरण के विभिन्न तरीके हैं, जिनमें शामिल हैं:

  • पासवर्ड-आधारित प्रमाणीकरण: सबसे आम तरीका जहां उपयोगकर्ता उपयोगकर्ता नाम और पासवर्ड प्रदान करते हैं।
  • टोकन-आधारित प्रमाणीकरण: उपयोगकर्ताओं को लॉग इन करने के बाद एक टोकन प्राप्त होता है, जिसका उपयोग बाद के अनुरोधों को प्रमाणित करने के लिए किया जाता है।
  • OAuth: तृतीय-पक्ष सेवाओं को उपयोगकर्ताओं को सत्यापित करने की अनुमति देता है, पासवर्ड साझा किए बिना पहुंच प्रदान करता है।

JWT (JSON वेब टोकन) क्या है?

JSON वेब टोकन (JWT) एपीआई और सिंगल-पेज एप्लिकेशन (एसपीए) को सुरक्षित करने का एक लोकप्रिय तरीका है। JWT एक कॉम्पैक्ट, URL-सुरक्षित टोकन है जिसका उपयोग पार्टियों के बीच सूचना को सुरक्षित रूप से प्रसारित करने के लिए किया जाता है।

यहां बताया गया है कि JWT क्या बनता है:

  • शीर्षलेख: इसमें टोकन प्रकार और हस्ताक्षर एल्गोरिथ्म (उदाहरण के लिए, एचएमएसी, आरएसए) के बारे में जानकारी शामिल है।
  • पेलोड: इसमें स्थानांतरित किए जा रहे दावे या डेटा शामिल हैं (उदाहरण के लिए, उपयोगकर्ता आईडी, समाप्ति समय)।
  • हस्ताक्षर: यह सत्यापित करके टोकन की अखंडता सुनिश्चित करता है कि डेटा में कोई बदलाव नहीं किया गया है।

JWT का उदाहरण

{
  "header": {
    "alg": "HS256",
    "typ": "JWT"
  },
  "payload": {
    "sub": "1234567890",
    "name": "John Doe",
    "iat": 1516239022
  },
  "signature": "SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c"
}

जेडब्ल्यूटी एक गुप्त कुंजी का उपयोग करके हेडर, पेलोड और हस्ताक्षर को एन्कोड करके बनाया गया है। यह टोकन तब क्लाइंट को भेजा जाता है (आमतौर पर स्थानीय भंडारण या कुकीज़ में संग्रहीत) और उपयोगकर्ता को प्रमाणित करने के लिए प्रत्येक अनुरोध के साथ पास किया जाता है।

यह ऐसे काम करता है:

sequenceDiagram
    participant User
    participant Server
    User ->> Server: Sends Login Credentials
    Server ->> User: Sends JWT
    User ->> Server: Requests Data with JWT
    Server ->> User: Verifies Token, Responds with Data

JWT का उपयोग क्यों करें?

  1. स्टेटलेस: सर्वर को किसी भी सत्र डेटा को संग्रहीत करने की आवश्यकता नहीं है। JWT में सभी आवश्यक जानकारी शामिल है।
  2. स्केलेबल: चूंकि सर्वर पर कोई सेशन स्टोरेज नहीं है, इसलिए एप्लिकेशन को स्केल करना आसान है।
  3. सुरक्षा: हस्ताक्षर सुनिश्चित करता है कि टोकन के साथ छेड़छाड़ नहीं की गई है।

OAuth क्या है?

OAuth प्राधिकरण के लिए एक खुला मानक है। यह उपयोगकर्ताओं को तृतीय-पक्ष ऐप के साथ अपनी साख साझा किए बिना अपने मौजूदा खातों (जैसे, Google, Facebook) का उपयोग करके तृतीय-पक्ष एप्लिकेशन में लॉग इन करने की अनुमति देता है।

OAuth एक्सेस टोकन जारी करके काम करता है जो तीसरे पक्ष की सेवाओं को उपयोगकर्ता की ओर से अन्य प्लेटफार्मों के साथ बातचीत करने की अनुमति देता है।

यहाँ OAuth के लिए एक बुनियादी प्रवाह है:

sequenceDiagram
    participant User
    participant App
    participant Google/Facebook
    User ->> App: Login with Google/Facebook
    App ->> Google/Facebook: Requests Authorization
    Google/Facebook ->> User: User Authorizes Access
    Google/Facebook ->> App: Sends Access Token
    App ->> User: Authenticated!
  1. उपयोगकर्ता Google से लॉगिन करें या फेसबुक से लॉगिन करें पर क्लिक करता है।
  2. ऐप प्रमाणीकरण के लिए उपयोगकर्ता को Google/Facebook पर रीडायरेक्ट करता है।
  3. उपयोगकर्ता विशिष्ट जानकारी (जैसे, प्रोफ़ाइल, ईमेल) तक पहुंच की अनुमति देने के लिए सहमति देता है।
  4. Google/Facebook ऐप को एक एक्सेस टोकन प्रदान करता है।
  5. ऐप उपयोगकर्ता की ओर से अधिकृत एपीआई अनुरोध करने के लिए टोकन का उपयोग करता है।

OAuth का उपयोग क्यों करें?

  1. सुविधा: उपयोगकर्ताओं को नया पासवर्ड या खाता बनाने की आवश्यकता नहीं है।
  2. सुरक्षा: उपयोगकर्ता कभी भी अपने क्रेडेंशियल सीधे आपके ऐप के साथ साझा नहीं करते हैं।
  3. मानकीकृत: OAuth को Google, Facebook, Twitter इत्यादि जैसे प्लेटफार्मों द्वारा व्यापक रूप से समर्थित किया जाता है।

OAuth को Google और Facebook के साथ एकीकृत करना

OAuth को Google या Facebook के साथ एकीकृत करने के लिए, इन चरणों का पालन करें:

चरण 1: Google या Facebook पर एक ऐप बनाएं

  • Google के लिए, Google डेवलपर कंसोल पर जाएं और एक प्रोजेक्ट बनाएं।
  • फेसबुक के लिए, फेसबुक डेवलपर पोर्टल पर जाएं और एक नया ऐप सेट करें।

चरण 2: क्लाइंट आईडी और क्लाइंट सीक्रेट प्राप्त करें

आपको Google या Facebook से एक क्लाइंट आईडी और क्लाइंट सीक्रेट प्राप्त होगा। इनका उपयोग आपके एप्लिकेशन को पहचानने और उसे अधिकृत करने के लिए किया जाता है।

चरण 3: अपने ऐप में OAuth सेट करें

यहां Google प्रमाणीकरण लागू करने के लिए Node.js और Passport.js का उपयोग करने का एक उदाहरण दिया गया है:

const passport = require('passport');
const GoogleStrategy = require('passport-google-oauth20').Strategy;

passport.use(new GoogleStrategy({
    clientID: process.env.GOOGLE_CLIENT_ID,
    clientSecret: process.env.GOOGLE_CLIENT_SECRET,
    callbackURL: '/auth/google/callback'
  },
  function(token, tokenSecret, profile, done) {
    // Save the user info from the profile
    return done(null, profile);
  }
));

// Routes for authentication
app.get('/auth/google', passport.authenticate('google', { scope: ['profile', 'email'] }));

app.get('/auth/google/callback', 
  passport.authenticate('google', { failureRedirect: '/' }),
  function(req, res) {
    // Successful authentication
    res.redirect('/dashboard');
  });

इस उदाहरण में:

  1. उपयोगकर्ता "Google के साथ लॉगिन करें" पर क्लिक करता है।
  2. उपयोगकर्ता को प्रमाणीकरण के लिए Google पर पुनर्निर्देशित किया गया है।
  3. सफल लॉगिन के बाद, Google उपयोगकर्ता को एक्सेस टोकन के साथ आपके ऐप पर वापस भेज देता है।

प्रमाणीकरण सुरक्षित करना

प्रमाणीकरण लागू करते समय सुरक्षा महत्वपूर्ण है। आपकी प्रमाणीकरण प्रणाली को सुरक्षित करने के लिए यहां कुछ सर्वोत्तम प्रथाएं दी गई हैं:

1. HTTPS का उपयोग करें

क्लाइंट और सर्वर के बीच प्रसारित डेटा को एन्क्रिप्ट करने के लिए हमेशा HTTPS का उपयोग करें। यह हमलावरों को संवेदनशील जानकारी को इंटरसेप्ट करने से रोकता है।

2. टोकन समाप्ति लागू करें

टोकन के पुन: उपयोग के जोखिम को कम करने के लिए टोकन (विशेष रूप से जेडब्ल्यूटी) की समाप्ति का समय होना चाहिए। उदाहरण के लिए, आप JWT को 15 मिनट में समाप्त होने के लिए सेट कर सकते हैं और नए टोकन उत्पन्न करने के लिए रीफ्रेश टोकन का उपयोग कर सकते हैं।

3. टोकनों को सुरक्षित रूप से संग्रहित करें

वेब ऐप्स के लिए, टोकन को स्थानीय स्टोरेज के बजाय httpOnly कुकीज़ में स्टोर करें। यह जावास्क्रिप्ट-आधारित हमलों (जैसे XSS) को टोकन तक पहुंचने से रोकता है।

4. टोकन घुमाएँ

लीक किए गए टोकन से होने वाले नुकसान को कम करने के लिए समय-समय पर टोकन को घुमाएं और अमान्य करें।

5. मजबूत ग्राहक रहस्य का उपयोग करें

सुनिश्चित करें कि आपकी क्लाइंट आईडी और क्लाइंट सीक्रेट मजबूत हैं और कभी भी जनता के सामने उजागर नहीं होते हैं। पर्यावरण चर का उपयोग करके उन्हें सुरक्षित रूप से संग्रहीत करें।

निष्कर्ष

प्रमाणीकरण किसी भी वेब एप्लिकेशन का एक बुनियादी पहलू है, और इसे संभालने के कई तरीके हैं। JWT एक स्टेटलेस, स्केलेबल दृष्टिकोण प्रदान करता है, जबकि OAuth Google और Facebook जैसी तृतीय-पक्ष सेवाओं के साथ सहज एकीकरण प्रदान करता है।

सर्वोत्तम सुरक्षा प्रथाओं का पालन करके, आप यह सुनिश्चित कर सकते हैं कि आपकी प्रमाणीकरण प्रणाली न केवल उपयोगकर्ता के अनुकूल है बल्कि सुरक्षित भी है।

विज्ञप्ति वक्तव्य इस लेख को पुन: प्रस्तुत किया गया है: https://dev.to/ivannalon/authentication-types-jwt-oauth-and-secure-tegration-with-google-and-facebook -3do6?1 यदि कोई उल्लंघन है, तो कृपया इसे हटाने के लिए [email protected] पर संपर्क करें।
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3