2012-11-24 54 views
54

我正在爲內部企業軟件平臺構建一個多頁面管理界面。想想很多粘合邏輯將各種API,db查詢和shell腳本捆綁在一起。Node.js應用程序的授權方法和設計模式

我們將使用node.js,express框架(包括jade模板)和LDAP進行認證。

我很努力地找到有關設計模式和節點應用程序授權的最佳實踐的信息。最好是,我想使用基於角色的模型,因爲我的用戶熟悉這種方法及其護理和餵養。

我是node.js的新手,所以請不要假設我已經看過一個模塊或流行博客文章。很可能有大量的信息,我根本不知道在哪裏尋找。

在此先感謝您提供的任何信息!

回答

39

根據您的第一個問題,您需要在NodeJs中實施一些授權流程。我已經探索並使用了多個NodeJs的API。我更願意爲企業應用程序提供以下API。

  • 對於驗證:PassportSatellizer如果顯影在AngularJS SPA(前端)。

  • 授權:ACL。 Methods和REST API的基於角色的安全性。

其次,你需要一些NodeJs的實現和開發方法。

  • 容易的,我最喜歡的設計模式和框架的NodeJS:MVC框架,SailsJs。爲其準備就緒和模塊化架構。代碼管理從長遠來看很容易(企業應用程序最實際的要求)。易於維護。 SailsJs也預配置爲Socket.io,使用它您可以在項目中創建實時模塊,小部件,聊天小部件。

  • Express您可以使用Express並設計自己的自定義MVC項目結構。這也很受歡迎和強大。你可以在Yeoman

  • Redis找到相同的流行種子項目作爲緩存或會話層。使用單獨的緩存或會話層總是好的,因爲它不會阻止您將雲上的應用程序擴展到第n個實例。

  • 您可以使用RedisSocket.io創建實時功能,如Geo-location,用戶在線(在線/離線),聊天,推送通知等等。

  • ORM:Waterline。對於它容易查詢的方法。這也是SailsJs的內置和默認ORM。如果不使用SailsJs,您也可以使用Sequelizejs。我建議使用DB提供者提供的本地連接器。

  • 數據庫:根據您的要求。水線ORM支持的PostgreSQL,MySQL和MongoDB的多..

  • 我faviourite視圖引擎:EJS。無需學習新事物來開發您的表示層。這也是SailsJs的內置和默認視圖引擎,這就是爲什麼我是SailsJs的粉絲。

我想,我已經介紹了在NodeJs中創建企業應用程序的所有重要信息。我沒有說,上面的軟件包是最好的,但是合作的,它們可以最適合任何企業場景。還有其他已知的軟件包,您可以根據自己的需求使用它們。

+2

waterline和sails.js +1 –

+2

你沒有提到你的前端架構。 如果您的應用程序使用SPA架構,您可能有多個客戶端(角度網站,角度管理站點,移動應用程序)與REST API交互,我會推薦使用Passport進行身份驗證的Satellizer。 – owlyfool

+1

@Amreesh你在4年前回答了這個問題,你會用當前的模塊,你使用的框架更新你的答案嗎? – kosnkov

12

這裏有一些開始信息:

希望能夠讓您更輕鬆地入手。

+0

謝謝!我會檢查這些鏈接。高速路由中間件的例子似乎非常接近我的用例 –

+39

奇怪的是,你的答案不包含單詞授權:) – redben

+1

完美的答案,幫了我很多。即使沒有這個詞授權:) –

1

我應該說Node-Authorization也是一個不錯的人選。這個想法是從SAP(ERP提供商)借來的,它是一個面向對象的授權。它也可以作爲其他框架的使用,如:Passport和Express。