सर्वर प्रतिक्रिया 401 Unauthorized
HTTP स्थिति कोड 401 (Unauthorized)
HTTP स्थिति कोड 401 (Unauthorized) यह इंगित करता है कि अनुरोध सफल नहीं हुआ क्योंकि लक्षित संसाधन के लिए मान्य प्रमाणीकरण का अभाव है। यह कोड अक्सर वेब विकास में देखा जाता है और विकसित करने वालों के लिए भ्रम पैदा कर सकता है, विशेषकर API के साथ काम करते समय। इस लेख में, हम इस स्थिति के उत्पन्न होने के कारणों, व्यावहारिक उदाहरणों और विभिन्न प्रोग्रामिंग भाषाओं में इसे ठीक करने के तरीकों पर चर्चा करेंगे।
स्थिति 401 के उत्पन्न होने के कारण
- प्रमाणीकरण डेटा का अभाव
- गलत क्रेडेंशियल्स
- समय सीमा पार कर चुके एक्सेस टोकन
- प्रमाणीकरण हेडर का गलत प्रारूप
व्यावहारिक उदाहरण
-
उदाहरण 1: सुरक्षित संसाधन तक पहुँचने में गलती
स्थिति का विवरण: उपयोगकर्ता एक API तक पहुँचने का प्रयास कर रहा है, जो प्रमाणीकरण की आवश्यकता है, लेकिन कोई क्रेडेंशियल प्रदान नहीं करता।
अपेक्षित व्यवहार: सर्वर 401 स्थिति लौटाता है।
-
उदाहरण 2: गलत क्रेडेंशियल्स
स्थिति का विवरण: उपयोगकर्ता गलत लॉगिन और पासवर्ड के साथ अनुरोध भेजता है।
अपेक्षित व्यवहार: सर्वर 401 स्थिति लौटाता है और असफल प्रमाणीकरण का संदेश देता है।
-
उदाहरण 3: पुराना टोकन का उपयोग
स्थिति का विवरण: उपयोगकर्ता एक ऐसा टोकन उपयोग करने का प्रयास करता है, जो समाप्त हो चुका है।
अपेक्षित व्यवहार: सर्वर 401 स्थिति लौटाता है और टोकन को अपडेट करने का अनुरोध करता है।
भाषाओं में त्रुटि 401 को ठीक करने के तरीके
1. JavaScript (Node.js)
प्रमाणीकरण को संभालने के लिए jsonwebtoken पुस्तकालय का उपयोग किया जाता है।
const jwt = require('jsonwebtoken');
app.get('/protected', (req, res) => {
const token = req.headers['authorization'];
if (!token) {
return res.status(401).send('Unauthorized');
}
jwt.verify(token, 'secret_key', (err, user) => {
if (err) {
return res.status(401).send('Unauthorized');
}
res.send('Access granted');
});
});
2. Python (Flask)
प्रमाणीकरण डेटा की जांच के लिए Flask पुस्तकालय का उपयोग किया जाता है।
from flask import Flask, request, jsonify
app = Flask(__name__)
@app.route('/protected')
def protected():
auth = request.authorization
if not auth or not (auth.username == 'user' and auth.password == 'pass'):
return jsonify({'message': 'Unauthorized'}), 401
return jsonify({'message': 'Access granted'})
3. PHP
हेडर के माध्यम से प्रमाणीकरण को संभालने के लिए।
<?php
if (!isset($_SERVER['PHP_AUTH_USER'])) {
header('HTTP/1.0 401 Unauthorized');
echo 'Unauthorized';
exit;
} else {
if ($_SERVER['PHP_AUTH_USER'] !== 'user' || $_SERVER['PHP_AUTH_PW'] !== 'pass') {
header('HTTP/1.0 401 Unauthorized');
echo 'Unauthorized';
exit;
}
echo 'Access granted';
}
?>
भाषा | प्रमाणीकरण विधि | उदाहरण कोड |
---|---|---|
JavaScript (Node.js) | jsonwebtoken | कोड उदाहरण ऊपर दिया गया है |
Python (Flask) | Flask | कोड उदाहरण ऊपर दिया गया है |
PHP | HTTP हेडर | कोड उदाहरण ऊपर दिया गया है |
इस लेख में, हमने HTTP स्थिति कोड 401 (Unauthorized) का विस्तृत विश्लेषण किया है, इसके कारणों और व्यावहारिक उदाहरणों के साथ-साथ विभिन्न प्रोग्रामिंग भाषाओं में इसे ठीक करने के तरीके पर भी चर्चा की है। इस प्रकार के प्रमाणीकरण त्रुटियों को समझना और उन्हें ठीक करना विकास प्रक्रिया का एक महत्वपूर्ण हिस्सा है।
अतिरिक्त कोड
कोड | विवरण |
---|---|
401.1 | लॉगऑन विफल - गलत उपयोगकर्ता नाम या पासवर्ड के कारण लॉगऑन प्रयास विफल हुआ। |
401.2 | सर्वर कॉन्फ़िगरेशन के कारण लॉगऑन विफल हुआ - सर्वर पर प्रमाणीकरण कॉन्फ़िगरेशन के साथ कोई समस्या है। |
401.3 | संसाधन पर ACL के कारण अनधिकृत - NTFS फ़ाइल सिस्टम अनुमतियों के कारण पहुँच अस्वीकृत है। |
401.4 | फ़िल्टर द्वारा प्राधिकरण विफल - प्राधिकरण समस्याओं के कारण ISAPI फ़िल्टर ने अनुरोध को अवरुद्ध कर दिया। |
401.5 | ISAPI/CGI अनुप्रयोग द्वारा प्राधिकरण विफल - ISAPI या CGI अनुप्रयोग ने प्राधिकरण समस्याओं के कारण अनुरोध को अवरुद्ध कर दिया। |
401.501 | पहुँच अस्वीकृत: समवर्ती अनुरोध दर सीमा पहुँच गई - एक ही क्लाइंट IP से बहुत अधिक समवर्ती अनुरोध। |
401.502 | पहुँच अस्वीकृत: अधिकतम अनुरोध दर सीमा पहुँच गई - क्लाइंट IP ने निर्दिष्ट समय में अनुरोधों की अधिकतम संख्या पार कर ली। |
401.503 | पहुँच अस्वीकृत: IP पता अस्वीकृत - क्लाइंट IP पता अस्वीकार सूची में है। |
401.504 | पहुँच अस्वीकृत: होस्ट नाम अस्वीकृत - क्लाइंट होस्ट नाम अस्वीकार सूची में है। |