उपयोगकर्ता-आधारित पहुँच नियंत्रण
प्रमाणित उपयोगकर्ता ID और भूमिकाओं के आधार पर पढ़ने/लिखने की पहुँच देने या रोकने वाले नियम लागू करें
उपयोगकर्ता-आधारित पहुँच नियंत्रण, CoddyKit पर Firebase Auth और रीयल-टाइम database applications का एक निःशुल्क पाठ है। यह 4 में से 2वाँ पाठ है। इस अध्ययन पथ के 3 तक कोई भी पाठ पूरा पढ़ना निःशुल्क है — इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ व्यावहारिक अभ्यास भी उपलब्ध कराता है। यह Firebase Auth और रीयल-टाइम database applications सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Firebase Auth और रीयल-टाइम database applications पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
उपयोगकर्ता के अनुसार पहुँच नियंत्रित करना
इस पाठ में आपका स्वागत है! सुरक्षित अनुप्रयोगों में यह नियंत्रित करना बेहद महत्वपूर्ण है कि कौन-सा उपयोगकर्ता किस डेटा तक पहुँच सकता है। इसे उपयोगकर्ता-आधारित पहुँच नियंत्रण कहा जाता है।
Firebase Realtime Database Security Rules की सहायता से आप वर्तमान में लॉग इन उपयोगकर्ता के आधार पर सटीक अनुमतियाँ निर्धारित कर सकते हैं।
<code>auth</code> चर से परिचय
अपनी सुरक्षा Rules के अंदर Firebase एक विशेष auth चर उपलब्ध कराता है। इस चर में वर्तमान में प्रमाणित उपयोगकर्ता की जानकारी होती है।
auth.uid: लॉग इन उपयोगकर्ता की विशिष्ट ID।auth.token: कस्टम दावों और टोकन के अन्य विवरणों (जैसे ईमेल) वाली एक ऑब्जेक्ट।
यदि कोई उपयोगकर्ता लॉग इन नहीं है, तो auth का मान null होगा।
केवल प्रमाणित उपयोगकर्ता
उपयोगकर्ता-आधारित पहुँच का सबसे सरल रूप यह सुनिश्चित करना है कि केवल प्रमाणित उपयोगकर्ता ही किसी डेटा को पढ़ या लिख सकें।
आप यह जाँचकर ऐसा कर सकते हैं कि auth चर null नहीं है।
{
"rules": {
".read": "auth != null",
".write": "auth != null"
}
}उपयोगकर्ता अपना डेटा पढ़ें
अक्सर आप चाहते हैं कि उपयोगकर्ता केवल अपना डेटा पढ़ सकें। कल्पना कीजिए कि एक /users नोड है, जिसमें प्रत्येक उपयोगकर्ता का अपना UID वाला सब-नोड है।
पथ में वाइल्डकार्ड चर ($uid) का उपयोग करके वर्तमान उपयोगकर्ता की ID से मिलान किया जा सकता है।
{
"rules": {
"users": {
"$uid": {
".read": "auth.uid == $uid"
}
}
}
}उपयोगकर्ता अपना डेटा लिखें
इसी तरह, आप लिखने की पहुँच को सीमित कर सकते हैं, ताकि उपयोगकर्ता केवल अपना डेटा बदल सकें। इससे एक उपयोगकर्ता दूसरे उपयोगकर्ता की प्रोफ़ाइल बदल नहीं पाएगा।
यह Rule पढ़ने वाली Rule के समान है, बस इसे .write पर लागू किया जाता है।
{
"rules": {
"users": {
"$uid": {
".write": "auth.uid == $uid"
}
}
}
}अपनी प्रोफ़ाइल पढ़ें और लिखें
आइए, पढ़ने और लिखने वाली Rules को मिलाते हैं। यह सामान्य पैटर्न उपयोगकर्ताओं को उनके अपने विशिष्ट डेटा नोड पर पूरा नियंत्रण देता है और अक्सर उपयोगकर्ता प्रोफ़ाइल के लिए इस्तेमाल किया जाता है।
यहाँ $userId किसी वास्तविक उपयोगकर्ता के UID के लिए प्लेसहोल्डर है।
{
"rules": {
"profiles": {
"$userId": {
".read": "auth.uid == $userId",
".write": "auth.uid == $userId"
}
}
}
}पोस्ट के स्वामित्व का उदाहरण
एक ऐसे 'posts' सेक्शन पर विचार कीजिए, जहाँ कोई भी पोस्ट पढ़ सकता है, लेकिन केवल उसका निर्माता ही अपनी पोस्ट को संपादित या हटा सकता है।
हम मानते हैं कि प्रत्येक पोस्ट ऑब्जेक्ट में ownerId फ़ील्ड है। डेटाबेस में मौजूद स्वामी ID को संदर्भित करने के लिए हम data.ownerId का उपयोग करते हैं।
{
"rules": {
"posts": {
"$postId": {
".read": "true",
".write": "auth.uid == data.ownerId"
}
}
}
}auth के साथ डेटा का सत्यापन
आप केवल यह नियंत्रित नहीं कर सकते कि कौन लिख सकता है, बल्कि यह भी सत्यापित कर सकते हैं कि वे क्या लिख रहे हैं। उदाहरण के लिए, जब कोई उपयोगकर्ता कोई आइटम बनाता है, तो यह सुनिश्चित किया जा सकता है कि वह स्वयं को सही तरीके से स्वामी के रूप में सेट करे।
newData चर उस डेटा को संदर्भित करता है जिसे लिखा जा रहा है।
{
"rules": {
"items": {
"$itemId": {
".write": "auth != null",
".validate": "newData.ownerId == auth.uid"
}
}
}
}उपयोगकर्ता भूमिकाओं से परिचय
अधिक जटिल पहुँच के लिए आप 'admin' या 'moderator' जैसी भूमिकाएँ निर्धारित कर सकते हैं। ये भूमिकाएँ अक्सर उपयोगकर्ता के प्रमाणीकरण टोकन में कस्टम दावों के रूप में संग्रहीत होती हैं।
इसके बाद आप auth.token का उपयोग करके अपनी Rules में इन भूमिकाओं की जाँच कर सकते हैं।
{
"rules": {
"adminContent": {
".read": "auth.token.isAdmin == true",
".write": "auth.token.isAdmin == true"
}
}
}पहुँच की त्वरित जाँच
निम्नलिखित Realtime Database Security Rules पर विचार कीजिए:
{
"rules": {
"messages": {
"$messageId": {
".read": "auth.uid == data.senderId",
".write": "auth.uid == data.senderId"
}
}
}
}यदि "user123" उपयोगकर्ता प्रमाणित है और data.senderId का मान "user456" वाली संदेश पढ़ने का प्रयास करता है, तो क्या वह सफल होगा?
पुनरावलोकन: उपयोगकर्ता पहुँच Rules
आपने Firebase Realtime Database Security Rules में शक्तिशाली उपयोगकर्ता-आधारित पहुँच नियंत्रण लागू करना सीख लिया है!
authचर वर्तमान उपयोगकर्ता का विवरण उपलब्ध कराता है।- आप पहुँच को प्रमाणित उपयोगकर्ताओं तक सीमित कर सकते हैं (
auth != null)। auth.uid == $uidका उपयोग करके उपयोगकर्ताओं को उनके अपने विशिष्ट डेटा तक पढ़ने और लिखने की पहुँच दी जा सकती है।- आप
newDataऔरauth.uidका उपयोग करके आने वाले डेटा का सत्यापन कर सकते हैं। - विशिष्ट उपयोगकर्ता समूहों को पहुँच देने के लिए भूमिकाओं का उपयोग किया जा सकता है।
अब स्वयं डेटा का सत्यापन करना सीखें!
एआई शिक्षक के साथ Firebase Auth और रीयल-टाइम database applications सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 11
- पाठ
- 44
अक्सर पूछे जाने वाले प्रश्न
क्या “उपयोगकर्ता-आधारित पहुँच नियंत्रण” पाठ निःशुल्क है?
हाँ — Firebase Auth और रीयल-टाइम database applications अध्ययन पथ के 3 तक कोई भी पाठ, जिसमें “उपयोगकर्ता-आधारित पहुँच नियंत्रण” भी शामिल है, यहाँ वेब पर पूरा पढ़ना निःशुल्क है। इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ इंटरैक्टिव अभ्यास भी उपलब्ध कराता है। Firebase Auth और रीयल-टाइम database applications पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“उपयोगकर्ता-आधारित पहुँच नियंत्रण” में मैं क्या सीखूँगा?
प्रमाणित उपयोगकर्ता ID और भूमिकाओं के आधार पर पढ़ने/लिखने की पहुँच देने या रोकने वाले नियम लागू करें आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Firebase Auth और रीयल-टाइम database applications का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या Firebase Auth और रीयल-टाइम database applications शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Firebase Auth और रीयल-टाइम database applications शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 2वाँ पाठ है।
“उपयोगकर्ता-आधारित पहुँच नियंत्रण” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस Firebase Auth और रीयल-टाइम database applications पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर Firebase Auth और रीयल-टाइम database applications पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- सुरक्षा नियमों के वाक्य-विन्यास को समझना
- उपयोगकर्ता-आधारित पहुँच नियंत्रण
- नियमों से डेटा का सत्यापन
- सुरक्षा नियमों का परीक्षण और डीबगिंग