84 votes

Approches d'autorisation et modèles de conception pour les applications Node.js

Je suis en train de construire une interface d'administration à plusieurs pages pour une plateforme logicielle interne à l'entreprise. Il s'agit de beaucoup de logique de collage reliant diverses API, des requêtes de base de données et des scripts shell scripts.

Nous utiliserons node.js, le framework express (y compris les modèles jade) et LDAP pour l'authentification.

J'ai du mal à trouver des informations sur les modèles de conception et les meilleures pratiques en matière d'autorisation dans les applications de nœuds. De préférence, j'aimerais utiliser le modèle basé sur les rôles car mes utilisateurs sont familiers avec cette approche et ses soins et son alimentation.

Je suis novice en matière de node.js, alors ne supposez pas que j'ai déjà vu un module ou un article de blog populaire. Il est probable qu'il existe une mine d'informations et que je ne sais tout simplement pas où chercher.

Merci d'avance pour toute information que vous pourrez nous fournir !

66voto

Amreesh Tyagi Points 56

Selon votre première question, vous souhaitez mettre en place un processus d'autorisation en NodeJs. J'ai exploré et utilisé un certain nombre d'API de NodeJs. Je préférerais les API suivantes pour les applications d'entreprise.

  • Pour l'authentification : Passeport o Satellisateur si vous développez une SPA (front-end) en AngularJS.

  • Pour autorisation : ACL . Sécurité basée sur les rôles pour les méthodes et les API REST. J'aimerais mentionner casbin si vous souhaitez utiliser RABC, ABAC également.

Deuxièmement, vous souhaitez une approche de la mise en œuvre et du développement en NodeJs.

  • Facile et mon modèle de conception et Framework préféré pour NodeJs : Cadre MVC , SailsJs . Pour son architecture modulaire et prête à l'emploi. La gestion du code est facile à long terme (exigence la plus pratique pour une application d'entreprise). Maintenance facile. SailsJs est également préconfiguré avec Socket.io Le logiciel de gestion de l'information est un outil qui vous permet de créer des modules en temps réel, des widgets, des widgets de chat dans votre projet.

  • Express Vous pouvez utiliser Express et concevoir votre propre structure de projet MVC. Cette méthode est également populaire et robuste. Vous pouvez trouver des projets de base populaires du même type sur Yeoman

  • Redis En tant que couche de mise en cache ou de session. Il est toujours bon d'utiliser une couche de cache ou de session séparée, car elle ne vous empêchera pas de faire évoluer votre application sur le nuage jusqu'à des instances n-ième.

  • Vous pouvez utiliser Redis y Socket.io pour créer des fonctionnalités en temps réel telles que Géolocalisation Les services d'aide à la décision sont nombreux : présence de l'utilisateur (en ligne/hors ligne), chat, notification par push et bien d'autres encore.

  • ORM : Ligne de flottaison . Pour sa facilité d'interrogation. C'est également l'ORM intégré et par défaut de SailsJs. Vous pouvez également utiliser Sequelizejs si vous n'utilisez pas SailsJs. Je recommanderais d'utiliser les connecteurs natifs fournis par les fournisseurs de bases de données.

  • Base de données : Selon vos besoins. Waterline ORM supporte PostgreSQL, MySQL, MongoDB et plus encore.

  • Mon moteur de visualisation préféré : EJS . Il n'est pas nécessaire d'apprendre de nouvelles choses pour développer votre couche de présentation. C'est aussi le moteur de vue intégré et par défaut de SailsJs, c'est pourquoi je suis un fan de SailsJs.

Je pense avoir couvert toutes les informations importantes pour créer une application d'entreprise en NodeJs. Je ne dis pas que les packages ci-dessus sont les meilleurs, mais en collaboration, ils peuvent être mieux adaptés à n'importe quel scénario d'entreprise. Il existe d'autres packages connus, que vous pouvez utiliser en fonction de vos propres besoins.

17voto

zemirco Points 5419

Voici quelques informations pour commencer :

J'espère que cela facilitera le démarrage.

4voto

Serjio Points 1412

Une autre option consiste à utiliser CASL qui est très bien intégré à MongoDB. Il y a aussi un article sur la façon d'intégrer l'autorisation basée sur CASL dans l'application expressjs. https://medium.com/@sergiy.stotskiy/authorization-with-casl-in-express-app-d94eb2e2b73b

1voto

Kai Zhang Points 5

Je devrais dire Autorisation du nœud est également un bon candidat. L'idée est empruntée à SAP (fournisseur d'ERP), il s'agit d'une autorisation orientée objet. Il peut également être utilisé en accompagnement d'autres frameworks tels que : Passport et Express.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X