2016-10-01 105 views
0

我已經與這個數據流星帳戶密碼只返回_id

Template.register.events({ 
    'submit form': function(event) { 
     event.preventDefault(); 
     var email = $("[name=email]").val(); 
     var password = $("[name=password]").val(); 
     var username = $("[name=username]").val(); 
     var firstname = $("[name=firstname]").val(); 
     var lastname = $("[name=lastname]").val(); 
     Meteor.users.insert({ 
      email: email, 
      password: password, 
      username: username, 
      firstname: firstname, 
      lastname: lastname 
     }); 
    } 
}); 

通過登錄表單插入一個帳戶,因爲它只是一個原型,我要確保數據是否已經插入或不瀏覽器控制檯上運行此命令:

Meteor.users.find().fetch(); 

但只取插入_id,而不是全部,我已經插入到集合中的數據。它是某種流星帳號密碼安全嗎?如果是這樣,我如何查看已經插入集合的所有數據。

在此先感謝。

+2

請參閱http://stackoverflow.com/questions/14243846/meteor-user-returns-only-its-id – Ankit

回答

0

要檢查答案,請訪問此鏈接:Meteor.user() returns only its _id

而這個鏈接包含一個良好的信息,幫助我解決這個問題: http://joshowens.me/the-curious-case-of-the-unknowing-leaky-meteor-security/

我一直很忙,也沒有檢查meteorjs的幾個星期,並與新的用戶帳戶軟件包有點混淆。如果有人想知道用戶帳戶數據的外觀如何,這是用戶帳戶文檔的參考:http://docs.meteor.com/api/accounts.html#Meteor-user

1

出於很好的理由,用戶集合是「特殊」的,你不能對其進行定期插入。你需要做這樣的事情:

if (Meteor.users.find({ emails: {$elemMatch: {address: email}}}).fetch().length === 0) { 
    id = Accounts.createUser({ 
     email: email, 
     password: password, 
     username: username, 
     profile: { firstname: firstname, lastname: lastname } 
    }); 

它看起來做密碼加密後你。

+0

謝謝你的回答,但這不是我所需要的。我只想獲取數據,而不是創建新用戶。 –

+1

對,我明白你現在要去的地方。正如你可能讀過的,除非你告訴它(出於安全原因),否則用戶集合不會返回所有內容。別擔心 – Mikkel