2012-11-24 25 views
54

Tôi đang xây dựng giao diện quản trị nhiều trang cho nền tảng phần mềm doanh nghiệp nội bộ. Hãy suy nghĩ rất nhiều logic gắn bó với nhau các API, truy vấn db và kịch bản lệnh shell khác nhau.Cách tiếp cận ủy quyền và mẫu thiết kế cho các ứng dụng Node.js

Chúng tôi sẽ sử dụng node.js, khung công tác nhanh (bao gồm các mẫu ngọc bích) và LDAP để xác thực.

Tôi đang cố gắng tìm thông tin liên quan đến các mẫu thiết kế và thực tiễn tốt nhất để ủy quyền trong các ứng dụng nút. Tốt hơn là, tôi muốn sử dụng mô hình dựa trên vai trò vì người dùng của tôi quen thuộc với cách tiếp cận đó và sự chăm sóc và nuôi dưỡng của nó.

Tôi mới sử dụng node.js vì vậy xin đừng cho rằng tôi đã thấy một mô-đun hoặc bài đăng trên blog phổ biến. Có thể có rất nhiều thông tin và tôi đơn giản không biết phải tìm đâu.

Cảm ơn trước vì bất kỳ thông tin nào bạn có thể cung cấp!

Trả lời

39

Theo câu hỏi đầu tiên của bạn, bạn muốn thực hiện một số quy trình ủy quyền trong NodeJ. Tôi đã khám phá và sử dụng số lượng API của NodeJ. Tôi thích sử dụng các API cho các ứng dụng doanh nghiệp.

  • Đối Xác thực: Passport hoặc Satellizer nếu phát triển SPA (front-end) trong AngularJS.

  • Để ủy quyền: ACL. Bảo mật dựa trên vai trò trên Phương thức và API REST.

Thứ hai, bạn muốn thực hiện một số phương pháp triển khai và phát triển trong NodeJ.

  • Dễ dàng và mẫu thiết kế yêu thích của tôi và Khung cho NodeJs: Khung MVC, SailsJs. Để sẵn sàng bắt đầu và kiến ​​trúc mô-đun của nó. Quản lý mã dễ dàng trong thời gian dài (Hầu hết các yêu cầu thực tế cho một ứng dụng doanh nghiệp). Bảo trì dễ dàng. SailsJs cũng được cấu hình sẵn với Socket.io, bằng cách sử dụng mà bạn có thể tạo các mô đun thời gian thực, các widget, các widget trò chuyện trong dự án của bạn.

  • Express Bạn có thể sử dụng Express và thiết kế cấu trúc dự án MVC tùy chỉnh của riêng bạn. Điều này cũng phổ biến và mạnh mẽ. Bạn có thể tìm các dự án giống phổ biến giống nhau trên Yeoman

  • Redis Là bộ đệm hoặc lớp phiên.Nó luôn luôn là tốt để sử dụng bộ nhớ đệm riêng biệt hoặc lớp phiên, bởi vì nó sẽ không chặn bạn để mở rộng quy mô ứng dụng của bạn trên đám mây đến các thể hiện thứ n.

  • Bạn có thể sử dụng RedisSocket.io để tạo các tính năng thời gian thực như Geo-location, sự hiện diện của người dùng (trực tuyến/ngoại tuyến), trò chuyện, thông báo đẩy và nhiều tính năng khác.

  • ORM: Waterline. Đối với phương pháp truy vấn dễ dàng của nó. Nó cũng là ORM sẵn có và mặc định của SailsJs. Bạn cũng có thể sử dụng Sequelizejs, nếu không sử dụng SailsJs. Tôi khuyên bạn nên sử dụng kết nối gốc được cung cấp bởi các nhà cung cấp DB.

  • Cơ sở dữ liệu: Theo yêu cầu của bạn. Waterline ORM hỗ trợ PostgreSQL, MySQL, MongoDB và nhiều hơn nữa ..

  • Công cụ xem faviourite của tôi: EJS. Không cần phải học những điều mới để phát triển lớp trình bày của bạn. Nó cũng là công cụ xem sẵn có và mặc định của SailsJs, đó là lý do tại sao tôi là một fan của SailsJs.

Tôi nghĩ, tôi đã đề cập đến tất cả thông tin quan trọng để tạo ứng dụng Enterprise trong NodeJ. Tôi không nói, các gói trên là tốt nhất, nhưng cộng tác, chúng có thể được trang bị tốt nhất cho bất kỳ kịch bản doanh nghiệp nào. Có các gói khác đã biết, mà bạn có thể sử dụng theo yêu cầu của riêng bạn.

+2

waterline và sails.js +1 –

+2

Bạn không đề cập đến kiến ​​trúc giao diện người dùng của mình. Nếu ứng dụng của bạn sử dụng kiến ​​trúc SPA, nơi bạn có thể có nhiều khách hàng (trang web góc, trang quản trị góc, ứng dụng dành cho thiết bị di động) tương tác với API REST, tôi khuyên bạn nên sử dụng Satellizer qua Hộ chiếu để xác thực. – owlyfool

+1

@Amreesh bạn đã trả lời câu chuyện này cách đây 4 năm, bạn có cập nhật câu trả lời của mình với các mô-đun, khung công tác hiện tại mà bạn sử dụng không? – kosnkov

12

Dưới đây là một số thông tin để bắt đầu:

Hy vọng rằng việc bắt đầu dễ dàng hơn.

+0

Cảm ơn bạn! Tôi sẽ kiểm tra các liên kết đó. Ví dụ về phần mềm trung gian tuyến đường dường như rất gần với trường hợp sử dụng tôi có –

+39

Lạ lùng rằng câu trả lời của bạn không chứa từ Authorization :) – redben

+1

Câu trả lời hoàn hảo, đã giúp tôi rất nhiều. Ngay cả khi không có sự cho phép từ :) –

1

Tôi nên nói Node-Authorization cũng là một ứng cử viên tốt. Ý tưởng được vay mượn từ SAP (nhà cung cấp ERP), nó là một ủy quyền hướng đối tượng. Và nó cũng có thể được sử dụng như một phần đệm với các framework khác như: Passport và Express.

Các vấn đề liên quan