2012-07-24 20 views
14

नई उल्का लेख शाखा में मैं उपयोगकर्ता सर्वर पक्ष कैसे बना सकता हूं?मैं मेटियर में उपयोगकर्ता सर्वर पक्ष कैसे बना सकता हूं?

मैं

[Client] Meteor.createUser(options, extra, callback) 

करने के लिए कॉल के साथ उन्हें क्लाइंट पक्ष बनाने के लिए कैसे देखते हैं लेकिन लगता है कि मैं स्टार्टअप पर एक उल्का उपयोगकर्ता संग्रह रिकॉर्ड बनाने के लिए करना चाहते हैं?

उदाहरण के लिए

, एक आवेदन के लिए स्टार्टअप/बूटस्ट्रैपिंग दौरान व्यवस्थापक खाते?

धन्यवाद Steeve

+1

बनाएं आप एक है कि accounts.createuser – xaxxon

उत्तर

8

शायद यह एक अच्छी तरह से ज्ञात तथ्य है अब है, लेकिन यह पूरा करने के लिए - auth शाखा पर ऐसा करने के लिए एक नया सर्वर एपीआई नहीं है। docs on auth से:

"[सर्वर] Meteor.createUser (विकल्प, अतिरिक्त) - एक उपयोगकर्ता बनाता है और भेजता है कि उपयोगकर्ता के लिए एक कड़ी के साथ एक ईमेल उनके प्रारंभिक पासवर्ड चुन सकते हैं और अपने अकाउंट नामांकन पूरा करने के लिए

विकल्प एक हैश युक्त ईमेल (अनिवार्य), उपयोगकर्ता नाम (वैकल्पिक) अतिरिक्त:। उपयोगकर्ता वस्तु के लिए अतिरिक्त क्षेत्रों (जैसे नाम, आदि) "

कृपया ध्यान दें एपीआई के रूप में यह पर नहीं है परिवर्तन के अधीन है मास्टर शाखा अभी तक।

+6

उल्का उपयोग करने के लिए अब सर्वर पर 'CreateUser' का उपयोग करने का समर्थन कहते हैं करने के लिए अपने को स्वीकार कर लिया जवाब अपडेट करना चाहिए। यहां विवरण: http://docs.meteor.com/#accounts_createuser – alanning

2

फिलहाल, मेरा मानना ​​है कि आप नहीं कर सकते। रनिंग

Meteor.call('createUser', {username: "foo", password: "bar"}); 

करीब आता है, लेकिन passwords_server.js में createUser के कार्यान्वयन कॉल this.setUserId सफलता पर, और setUserId सर्वर पर नहीं कहा जा सकता जब तक कि हम एक ग्राहक द्वारा आरंभ किए गए विधि मंगलाचरण ("कॉल नहीं कर सकता के लिए खोज कर रहे हैं एक सर्वर शुरू की विधि कॉल "livedata_server.js में पर setUserId।

इस लायक समर्थन। शायद createUser के अंतिम तीन लाइनों, जिसमें उपयोगकर्ता प्रवेश करते है, विधि के लिए एक नया बूलियन login विकल्प द्वारा नियंत्रित किया जाना चाहिए कुछ की तरह लग रहा है? फिर आप

का उपयोग कर सकते हैं
Meteor.call('createUser', {username: "foo", password: "bar", login: false}); 
सर्वर बूटस्ट्रैप कोड में

8

अब यह उल्का-कोर Google समूह में सुझाया गया है।

Meteor.users.insert({username: 'foo', emails: ['[email protected]'], name: 'baz', services:  {password: {srp: Meteor._srp.generateVerifier('password')}}}); 

यह काम करता है। मैंने इसे स्टार्टअप/बूट पट्टा के दौरान परीक्षण किया।

मैं इसे स्थायी या दीर्घकालिक उत्तर नहीं मानूंगा क्योंकि मेरा मानना ​​है कि लेख शाखा अभी भी बहुत बड़ी बदलाव में है और मुझे लगता है कि मेटियर के पीछे की टीम इसके लिए कुछ प्रकार की कार्यक्षमता प्रदान करेगी।

तो, इस पर दीर्घकालिक उत्तर के रूप में इस पर निर्भर न करें।

Steeve

21

उल्का उपयोग के नए संस्करण

Accounts.createUser({ 
          username: username, 
          email : email, 
          password : password, 
          profile : { 
           //publicly visible fields like firstname goes here 
          } 

    }); 

टिप्पणी पर: पासवर्ड हैश उल्का उपयोग के पुराने संस्करणों पर स्वचालित रूप से

उत्पन्न होता है:

1 - एनबी: क्या आपके पास आवश्यक पैकेज स्थापित है?

  • एमआरटी खातों आधार जोड़ने
  • एमआरटी जोड़ने खातों-पासवर्ड

उल्का के कुछ संस्करणों पर आप SRP पासवर्ड नमक जनरेटर के रूप में Steeve सुझाव दिया कॉल नहीं कर सकते, तो यह प्रयास करें:

2 - Meteor.users.insert()

उदाहरण के लिए करें

var newUserId = 
Meteor.users.insert({ 
     emails: ['[email protected]'], 
     profile : { fullname : 'peter' } 
}); 

टिप्पणी: एक उपयोगकर्ता या तो एक उपयोगकर्ता नाम या एक ईमेल पता होना चाहिए। मैंने इस उदाहरण में ईमेल का इस्तेमाल किया।

3 - अंत में नव निर्मित खाते के लिए पासवर्ड सेट करें।

 
     Accounts.setPassword(newUserId, 'newPassword'); 
    

+0

+1 खाता-पासवर्ड का उल्लेख करने के लिए। मैं इस पैकेज के बिना accounts.createUser का उपयोग करने की कोशिश कर रहा था, और यह काम नहीं करेगा! –

1

मैं पुष्टि की है कि अपने सर्वर/seeds.js फ़ाइल में निम्न कोड उल्का का नवीनतम संस्करण के साथ काम करता है (0.8.1.1 रिलीज) server की

if (Meteor.users.find().count() === 0) { 
    seedUserId = Accounts.createUser({ 
    email: '[email protected]', 
    password: '123456' 
    }); 
} 

निर्देशिका (या फ़ोल्डर) मतलब है कि मैं सर्वर पर कोड चला रहा हूँ। फ़ाइल नाम seeds.js पूरी तरह से मनमाना है।

official documentation अब क्लाइंट पर चलने पर और सर्वर पर चलाने पर Accounts.createUser() दोनों व्यवहारों का वर्णन करता है।

0

उल्का संस्करण 1.1.0.2 (सर्वर साइड) के लिए कार्य करना coffeescript उदाहरण:

userId = Accounts.createUser 
    username: 'user' 
    email: '[email protected]' 
    password: 'password' 
    profile: 
     name: 'user name' 
user = Meteor.users.findOne userId 

मैं इस एपीआई हो रही के साथ कुछ समय के लिए संघर्ष करने के लिए profiles.name जोड़ने से पहले काम कर कोड में 'उपयोगकर्ता पहले से मौजूद है' अपवाद options और अपवाद गायब हो गया।

संदर्भ: Accounts.createUser(options,[callback])

1

// Server method 
    Meteor.methods({ 
     register: function(data) { 
     try { 
     console.log("Register User"); 
     console.log(data); 
     user = Accounts.createUser({ 
      username: data.email, 
      email: data.email, 
      password: data.password, 
      profile: { 
      name: data.email, 
      createdOn: new Date(), 
      IsInternal: 0 
      } 
     }); 
     return { 
      "userId": user 
     }; 
     } catch (e) { 
     // IF ALREADY EXSIST THROW EXPECTION 403 
     throw e; 
     } 
    } 
    }); 
    // Client call method 
    Meteor.call('register',{email: "[email protected]",password: "123456"}, function(error, result){ 
     if(result){ 
     console.log(result) 
     } 
     if(error){ 
     console.log(result) 
     } 
    }); 
सर्वर साइड से उपयोगकर्ता
संबंधित मुद्दे