2013-06-24 82 views
1

我是流星的新手,在註冊一個登錄處理程序時遇到困難,該處理程序允許我使用密碼對用戶進行身份驗證。Accounts.registerLoginHandler在流星中使用密碼

我從http://meteorhacks.com

工作過的代碼在服務器端代碼如下:

Accounts.registerLoginHandler(function(loginRequest) { 
var userId = null; 
var user = Meteor.users.findOne({'emails.address': loginRequest.email, password: loginRequest.password, 'proile.type': loginRequest.type}); 
if(user) { 
    userId = user._id; 
} 
return { id: userId} 

,如果我拿出密碼字段,只是使用的電子郵件和類型的人也能正常工作。我怎樣才能使用密碼來操作呢?

回答

1

底線,您不能通過明文密碼直接搜索。您需要通過SRP驗證密碼,這有點棘手,因爲沒有任何文檔。幸運的是Meteor是開源的!一個好的開始是在accounts-passwordhttps://github.com/meteor/meteor/blob/master/packages/accounts-password/password_server.js

已經有一個軟件包,可以爲你做密碼登錄(上面的文件來自)。您可以通過meteor add accounts-password將其添加到您的項目中。

然後,你可以用Meteor.loginWithPassword

+0

感謝Akshat,我想要做到的,是用密碼登錄還檢查了「類型」字段登錄。換句話說,只要類型不同(如果有意義的話),您可以擁有多個具有相同用戶/密碼的用戶/密碼/類型帳戶。 我想一個選擇是使用從我的處理程序調用的密碼的標準登錄,然後檢查類型?我寧願不重複所有現有的代碼自然。 :) –