खोज…


उल्का खाते पैकेज

जब आपके पास उल्का के साथ प्रवेश करने की बात आती है तो आपके पास कुछ विकल्प होते हैं। सबसे आम तरीका उल्का के लिए accounts का उपयोग कर रहा है।

लेखा-पासवर्ड

यदि आप चाहते हैं कि उपयोगकर्ता आपकी साइट पर बनाने और पंजीकरण करने में सक्षम हों, तो आप accounts-password उपयोग कर सकते accounts-password

meteor add accounts-password का उपयोग कर पैकेज स्थापित करें।

उपयोगकर्ता बनाने के लिए, आपको Accounts.createUser(options, [callback]) का उपयोग करने की आवश्यकता है

options में निम्नलिखित गुणों के साथ एक वस्तु होनी चाहिए:

  • username : एक स्ट्रिंग के रूप में उपयोगकर्ता का उपयोगकर्ता नाम ..
  • email : एक स्ट्रिंग के रूप में उपयोगकर्ता का ईमेल।
  • password : एक स्ट्रिंग के रूप में उपयोगकर्ता (एन्क्रिप्टेड नहीं) पासवर्ड।
  • profile : उपयोगकर्ता का वैकल्पिक अतिरिक्त डेटा एक वस्तु के रूप में। यह उदाहरण के लिए उपयोगकर्ता का पहला और अंतिम नाम हो सकता है। profile वैकल्पिक है, हालांकि।

कॉलबैक 1 चर देता है यदि कोई त्रुटि होती है, जो एक Meteor.Error ऑब्जेक्ट है।

आपको केवल username या email का उपयोग करने की आवश्यकता है, इसलिए आप उपयोगकर्ता नाम वाला कोई उपयोगकर्ता बना सकते हैं, लेकिन कोई ईमेल नहीं, और इसके विपरीत। आप दोनों का उपयोग भी कर सकते हैं।

यदि सब कुछ सही ढंग से चला गया तो यह नव निर्मित उपयोगकर्ता आईडी लौटाता है।

तो, आप उदाहरण के लिए इसका उपयोग कर सकते हैं:

// server side
var id = Accounts.createUser({
    username: "JohnDoe",
    email: "[email protected]",
    password: "TheRealJohn123",
    profile: {
        firstName: "John",
        lastName: "Doe"
    }
}, function(err) {
    console.log(err.reason);
});

यह स्वचालित रूप से आपको लॉग इन करेगा यदि उपयोगकर्ता ने सफलतापूर्वक बनाया था।

वह बनाने वाला हिस्सा है। लॉग इन करने के लिए आपको क्लाइंट पक्ष पर Meteor.loginWithPassword(identifier, password, [callback]) करना होगा।

identifier है username , email या userId अपने उपयोगकर्ता के किसी स्ट्रिंग के रूप में। password उपयोगकर्ता का (एन्क्रिप्टेड नहीं) password है।

कॉलबैक एक चर देता है यदि कोई त्रुटि है, जो एक Meteor.Error ऑब्जेक्ट है।

उदाहरण:

// client side
Meteor.loginWithPassword("JohnDoe", "TheRealJohn123", function(err) {
    console.log(err.reason);
});

और यह खातों के मूल निर्माण और लॉग इन करने के लिए है।

उपयोगकर्ता डेटा तक पहुंच

आप क्लाइंट की तरफ देख सकते हैं कि उपयोगकर्ता को फोन करके में लॉग ऑन है Meteor.userId() जो उनके वापस आ जाएगी userId अगर वे में लॉग इन किया है, और undefined अगर वे में लॉग इन नहीं कर रहे हैं।

आप Meteor.user() से कुछ जानकारी प्राप्त कर सकते हैं। यदि उपयोगकर्ता लॉग इन नहीं है और यह कुछ उपयोगकर्ता डेटा है तो यह अपरिभाषित वापस आ जाएगा। यह आपको डिफ़ॉल्ट रूप से कोई पासवर्ड नहीं देगा, डिफ़ॉल्ट रूप से यह उपयोगकर्ता का उपयोगकर्ता आईडी, उपयोगकर्ता नाम और प्रोफ़ाइल ऑब्जेक्ट दिखाएगा।

यदि आप जांचना चाहते हैं कि उपयोगकर्ता किसी पृष्ठ पर लॉग इन है, तो आप currentUser हेल्पर का भी उपयोग कर सकते हैं। यह Meteor.user() की सामग्री को लौटा देगा। उदाहरण:

{{#if currentUser}}
    <h1>Hello there, {{currentUser.username}}!</h1>
{{else}}
    <h1>Please log in.</h1>
{{/if}}

अन्य खातों के कार्य

कुछ अन्य कार्य हैं जो हर खाते के पैकेज के लिए काम करते हैं।

आप Meteor.logout() का उपयोग करके लॉग आउट कर सकते हैं

डिफ़ॉल्ट प्रोफ़ाइल फ़ील्ड का उपयोग न करें

एक आकर्षक मौजूदा क्षेत्र है जिसे profile कहा जाता है जो डिफ़ॉल्ट रूप से तब जोड़ा जाता है जब एक नया उपयोगकर्ता पंजीकरण करता है। इस क्षेत्र को ऐतिहासिक रूप से उपयोगकर्ता-विशिष्ट डेटा के लिए एक स्क्रैच पैड के रूप में उपयोग करने का इरादा था - शायद उनकी छवि अवतार, नाम, परिचय पाठ आदि। इस वजह से, प्रत्येक उपयोगकर्ता पर profile फ़ील्ड क्लाइंट से उस उपयोगकर्ता द्वारा स्वचालित रूप से लिखने योग्य है । यह उस विशेष उपयोगकर्ता के लिए क्लाइंट के लिए स्वचालित रूप से प्रकाशित होता है।

यह पता चलता है कि डिफ़ॉल्ट रूप से बिना किसी सुपर स्पष्ट के फील्ड राइट होने का सबसे अच्छा विचार नहीं हो सकता है। नए Meteor Developers की कई कहानियां हैं जो फ़ील्ड्स को स्टोर कर रहे हैं जैसे कि profile पर isAdmin ... और फिर एक दुर्भावनापूर्ण उपयोगकर्ता आसानी से सेट कर सकता है कि जब भी वह चाहे, खुद को एडमिन बना सके। यहां तक कि अगर आप इस बारे में चिंतित नहीं हैं, तो दुर्भावनापूर्ण उपयोगकर्ताओं को आपके डेटाबेस में डेटा की मनमानी मात्रा को स्टोर करने देना अच्छा नहीं है।

इस क्षेत्र की बारीकियों से निपटने के बजाय, इसके अस्तित्व को पूरी तरह से नजरअंदाज करने में मदद मिल सकती है। आप सुरक्षित रूप से तब तक कर सकते हैं जब तक कि आप क्लाइंट से सभी लिखने से इनकार करते हैं:

// Deny all client-side updates to user documents
Meteor.users.deny({
  update() { return true; }
});

यहां तक कि प्रोफ़ाइल के सुरक्षा निहितार्थों को अनदेखा करते हुए, अपने ऐप के सभी कस्टम डेटा को एक फ़ील्ड पर रखना अच्छा नहीं है। उल्का के डेटा ट्रांसफर प्रोटोकॉल में खेतों की गहराई से नेस्टिंग नहीं होती है, इसलिए दस्तावेज़ पर कई शीर्ष-स्तरीय फ़ील्ड में अपनी वस्तुओं को समतल करना एक अच्छा विचार है।



Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow