Підходи до авторизації та шаблони проектування додатків Node.js [закрито]


80

Я будую багатосторінковий адміністративний інтерфейс для внутрішньої корпоративної програмної платформи. Подумайте про багато клейової логіки, пов’язуючи різні API, запити db та сценарії оболонки.

Для автентифікації ми будемо використовувати node.js, експрес-фреймворк (включаючи шаблони нефриту) та LDAP.

Я намагаюся знайти інформацію щодо шаблонів проектування та найкращих практик авторизації у програмах вузлів. Бажано, я хотів би використовувати рольову модель, оскільки мої користувачі знайомі з таким підходом та доглядом та годуванням.

Я новачок у node.js, тому, будь ласка, не думайте, що я вже бачив модуль чи популярний допис у блозі. Ймовірно, що є безліч інформації, і я просто не знаю, де шукати.

Заздалегідь дякуємо за будь-яку інформацію, яку ви можете надати!

Відповіді:


63

Згідно з вашим першим запитанням, вам потрібна реалізація процесу авторизації в NodeJs. Я дослідив і використовував ряд API NodeJ. Я б віддав перевагу наступним API для корпоративних додатків.

  • Для автентифікації: паспорт або супутник, якщо розробляється SPA (інтерфейс) у AngularJS.

  • Для авторизації: ACL . Рольова безпека методів та REST API. Я хотів би згадати casbin, якщо ви хочете також використовувати RABC, ABAC.

По-друге, вам потрібен певний підхід до розробки та розробки в NodeJs.

  • Легкий і мій улюблений шаблон дизайну та фреймворк для NodeJ: фреймворк MVC, SailsJs . Для його готової до запуску і модульної архітектури. Управління кодом є простим у довгостроковій перспективі (найбільш практична вимога до корпоративного додатка). Простота обслуговування. SailsJs також попередньо налаштовано на Socket.io , за допомогою якого ви можете створювати модулі реального часу, віджети, віджети чату у своєму проекті.

  • Express Ви можете використовувати Express та розробити власну структуру проекту MVC. Це також популярно і надійно. Ви можете знайти популярні насіннєві проекти того самого на Yeoman

  • Redis Як шар кешування або сеансу. Завжди добре використовувати окремий рівень кешування або сеансу, оскільки це не заблокує вам масштабування програми в хмарі до n-их примірників.

  • Ви можете використовувати Redis і Socket.io для створення в реальному часі функції , такі як гео-позиціонування , користувач-присутність (онлайн / оффлайн), чат, Push-повідомлення і багато іншого.

  • ORM: Ватерлінія . За легкий підхід до запитів. Це також вбудований і стандартний ORM SailsJs. Ви також можете використовувати Sequelizejs , якщо не використовуєте SailsJs. Я б рекомендував використовувати власні роз'єми, надані провайдерами БД.

  • База даних: відповідно до ваших вимог. Waterline ORM підтримує PostgreSQL, MySQL, MongoDB та ін ..

  • Мій улюблений механізм подання: EJS . Не потрібно вивчати нові речі для розробки рівня презентації. Це також вбудований і за замовчуванням механізм перегляду SailsJs, ось чому я фанат SailsJs.

Думаю, я висвітлив всю важливу інформацію для створення корпоративного додатка в NodeJs. Я не кажу, що вищевказані пакети найкращі, але спільно їх можна найкраще підібрати до будь-якого корпоративного сценарію. Є й інші відомі пакунки, якими ви можете користуватися відповідно до власних вимог.


2
waterline and sails.js +1
Тревіс Вебб

@kosnkov Більшість із них чудові. Перевірте HapiJS, щоб отримати потужнішу альтернативу Express, а Sequelize - альтернативу Waterline. На мій погляд, я думаю, що SailsJS є надмірним. Якщо ви походите з RAILS або Django, ви повинні розуміти достатньо концепції, щоб бути в порядку з Express / Hapi та Waterline / Sequelize; це набагато легша вага проти Sails. Я обираю Hapi / Sequelize.
damusix

Хороший список. Було б також добре додати крихітну нотатку про захист грубою силою. Такий пакет, як обмежувач тарифів-гнучкий, повинен добре підходити.
Анімір

15

Ось деяка інформація для початку:

Сподіваюся, це полегшує початок.


Дякую! Я перевірю ці посилання. Приклад проміжного програмного забезпечення експрес-маршруту здається дуже близьким до того, який у мене є
варіант

53
Дивно, що ваша відповідь не містить слова Авторизація :)
redben

1
Ідеальна відповідь, мені дуже допомогло. Навіть без дозволу слова :)
Містер Бодін,




0

Слід сказати, що Node-Authorization - теж хороший кандидат. Ідея запозичена у SAP (постачальника ERP), це об’єктно-орієнтована авторизація. І його також можна використовувати як супровід до інших фреймворків, таких як: Passport та Express.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.