2013-07-21 72 views
1

我有node.js和護照工作,使用passport.js文檔。NodeJS Passport:可以驗證角色?

我的問題是,我可以不同的身份驗證,使用LocalStrategy爲不同的角色?

我有普通用戶和管理員用戶,當然,有些頁面只適用於管理員。

回答

4

我離回答自己的問題只有五分鐘的路程。

您可以通過護照在req.user中找到用戶實體數據。

,所以我可以用這個

if (req.user.role == "Admin") { 
    // render page here 
} else { 
    // redirect somewhere else 
} 
1

你要設計你的數據庫的方式,你可以記住,如果用戶是管理員或普通用戶等(即你將不得不作出將數據保存)。

現在至於如何使用這個本地策略?我真的懷疑,除非你每次用他的用戶名和密碼請求一個新頁面時,都要尋找你的用戶登錄,否則你就需要用本地策略。您應該使用會話,您可以在用戶反序列化方法中添加特殊的特殊req.role。

現在對於每個視圖你需要檢查用戶的角色是否允許他查看它?你可以定義一個自定義策略來檢查這個嗎?在該策略中,只需檢查req.user.role並允許每個頁面具有特定角色。

我希望這可以幫助你!