2015-09-26 83 views
1

我正在使用Node.js/Express設計我的用戶身份驗證系統,而且我一直在尋找Web身份驗證策略,我注意到很多開發人員推薦使用passport.js幫助認證。Passport.js實用於簡單登錄

我的身份驗證只會對JSON Web令牌使用用戶名/密碼策略。根據這個假設,我似乎必須自己管理整個身份驗證:我檢查數據庫的用戶名和密碼,然後檢查並附加JWT。看起來Passport只是將我的工作包裝在自己的功能中。

僅使用用戶名/密碼策略,Passport有什麼用處?在這種情況下,Passport提供的對我有什麼真正的好處,只是在沒有它的情況下執行身份驗證?

回答

0

護照給你更多的靈活性和可擴展性。現在,您需要一個特定策略,但將來您可以添加或刪除舊策略。使用護照等模塊可以使您的應用程序代碼獨立於某些流程。它幾乎就像依賴注入一樣,你將注入策略與硬編碼相反。

我想說的是,好的應用程序應該儘可能多地具有可以注入策略/策略的函數/模塊。獨立的模塊也是nodejs/express風格。

如果你以相同的風格編碼你的認證,那麼它是超級的(但爲什麼重新發明輪子)。

使用護照,您可以繼承基礎戰略,並嚴格按照您的需求創建新戰略,並將其與其他戰略一起使用。

+1

好點,但我不認爲他們足夠強大,以保證處理另一個模塊。如果使用Passport的唯一理由是1)具有更多的模塊化代碼,並且2)爲將來可能添加的身份驗證策略提供更多的靈活性,那麼1)使用Passport來簡單模塊化只會增加我的代碼庫和依賴關係,2)我可以輕鬆地當我需要穿過那座橋時切換到護照。 – Rhyeen

+0

我也喜歡你的觀點。我沒有更多贊成護照的論據。有時候我也會選擇自己的解決方案,但我相信我的答案中的大部分時間參數都是正確的。 –

0

從來沒有。永遠。實行。你的。擁有。安全。框架

除非你真正想實現一個框架,你擁有所有的資源在世界上做到這一點,所有必需的知識和關鍵人員(如OWASP)&等等等等

使用現有lib用於您的項目

使用開源並經過測試的庫或框架。是的,它不會是完美的,會有侷限性。是的,它可能不是最安全的代碼。但它會比你自己更好,特別是如果你從頭開始。

然後按照CSRF,XSS,DDoS &其他類型的攻擊預防的最佳做法。