2016-11-23 89 views
0

我已經創建了一個用於測試目的的帶有一個用戶名和密碼的虛擬集合。如果信息正確,我想檢查是否可以成功登錄。如何在登錄時驗證用戶憑證?

我存儲會話用戶輸入如下:

Template.contactus.events({ 
     'submit #hr-login': function (e, t) { 

     e.preventDefault(); 

     Session.set('username', t.find('#username').value); 
     Session.set('password', t.find('#password').value); 

     Router.go('/message'); 

     } 
}); 

我嘗試下面的代碼:

 var check = hr.findOne({username: Session.get('username'), pass: Session.get('password')}); 
if(check){ 
    Router.go('/message'); 
} 

不幸的是,它並沒有解決這個問題對我來說。

如何檢查用戶輸入是否正確並與集合中的用戶名和密碼相匹配?

UPDATE

我知道accounts-uiaccounts-password包,但由於我的項目要求,我不能使用它們

+0

不知道我是否理解你。您是否正在嘗試構建自己的用戶帳戶系統,而不使用Meteor自帶的用戶帳戶系統? – Khang

+0

@Khang,我想創建一個系統,其中將有多個存儲用戶帳戶的集合。例如,收集將存儲管理員的賬戶,另一個收集將存儲員工的賬戶等。如果我沒有弄錯,流星賬戶套餐限於一個集合。我不確定是否存在某些能夠幫助我處理規範的軟件包 –

+0

這不是一項普通的任務,您需要修改Meteor的核心軟件包代碼,以將用戶的文檔存儲在不同的集合中,並仍然允許他們登錄。如果你確實需要這樣做,請從這個包開始:https://github.com/meteor/meteor/tree/devel/packages/accounts-base。 – Khang

回答

1

我認爲你可以使用accounts-password,而不是使不同的集合爲管理員和員工對這個包有一非常有幫助的包alanning:roles你可以通過meteor add alanning:roles來添加此軟件包

轉到此github鏈接的文檔和用法。 https://github.com/alanning/meteor-roles

+0

只是一個問題,以確保我不會將來不會遇到問題。我想添加另一層面向首席執行官的層面。首席執行官將擁有一項功能,可以作爲管理員或員工爲系統添加用戶。我可以將添加的用戶(管理員/員工)鏈接到正確的角色嗎?而不必玩弄代碼?在未來? –

+0

@BehrouzRiahi,是的,你可以添加更多的角色給用戶並指定權限,在文檔中說過,即使我的應用程序中有一個場景,管理員可以添加用戶,但簡單的員工不能,我的目的是通過'alannig:角色'包。 –

+0

很好聽,現在我感覺舒服使用它:),如果我可以,最後一個問題。我希望我的系統只允許沒有註冊的登錄,我可以通過流星賬戶套餐完成嗎? –

2

我不知道你是否知道流星的賬戶包 - 使用它會容易得多。它還提供Facebook/Google登錄和其他許多功能,幾乎都是開箱即用的。

https://guide.meteor.com/accounts.html

有,你可以安裝完成大部分工作,爲您

+0

我知道那個包,但是我必須根據我的項目要求創建自己的登錄。 –

+0

你正在考慮一條漫長的道路。看看這個答案(類似於你的問題)http://stackoverflow.com/questions/40731234/separating-users-database-into-two-different-collections/40732229#40732229 – Mikkel