2012-11-24 7 views
54

Sto costruendo un'interfaccia di amministrazione di più pagine per una piattaforma software aziendale interna. Pensa molto alla logica della colla legando insieme varie API, query db e script di shell.Approcci di autorizzazione e modelli di progettazione per le applicazioni Node.js

Utilizzeremo node.js, il framework espresso (compresi i modelli di giada) e LDAP per l'autenticazione.

Non riesco a trovare informazioni relative ai modelli di progettazione e alle best practice per l'autorizzazione nelle applicazioni di nodo. Preferibilmente, vorrei utilizzare il modello basato sul ruolo poiché i miei utenti hanno familiarità con tale approccio e la sua cura e alimentazione.

Sono nuovo su node.js quindi per favore non dare per scontato che abbia già visto un modulo o un famoso post sul blog. È probabile che ci sia una grande quantità di informazioni e semplicemente non so dove cercare.

Grazie in anticipo per qualsiasi informazione che siate in grado di fornire!

risposta

39

Come per la prima domanda, si desidera implementare un processo di autorizzazione in NodeJs. Ho esplorato e utilizzato il numero di API di NodeJs. Preferirei seguire le API per le applicazioni aziendali.

  • Per autenticazione: Passport o Satellizer se sviluppare SPA (front-end) in AngularJS.

  • Per autorizzazione: ACL. Sicurezza basata sui ruoli su metodi e API REST.

In secondo luogo, si desidera un approccio di implementazione e sviluppo in NodeJs.

  • dolce e il mio modello di progettazione preferito e quadro per NodeJs: framework MVC, SailsJs. Per la sua pronta per iniziare e l'architettura modulare. La gestione dei codici è facile a lungo termine (la maggior parte dei requisiti pratici per un'applicazione aziendale). Facile manutenzione SailsJs è anche preconfigurato con Socket.io, utilizzando il quale è possibile creare moduli, widget, widget di chat in tempo reale con il proprio progetto.

  • Express È possibile utilizzare Express e progettare la propria struttura di progetto MVC personalizzata. Questo è anche popolare e robusto. È possibile trovare progetti di seed popolari della stessa su Yeoman

  • Redis Come livello di cache o di sessione.È sempre consigliabile utilizzare il caching separato o il livello di sessione, poiché non impedirà di ridimensionare l'applicazione su cloud in ennesime istanze.

  • È possibile utilizzare Redis e Socket.io per creare funzioni in tempo reale come Geo-location, user-presenza (online/offline), chat, push-notifica e molti altri.

  • ORM: Waterline. Per il suo facile approccio alla ricerca. È anche l'ORM integrato e predefinito di SailsJs. È inoltre possibile utilizzare Sequelizejs, se non si utilizza SailsJs. Consiglierei di utilizzare connettori nativi forniti dai provider di DB.

  • Database: secondo le vostre esigenze. Waterline ORM supporta PostgreSQL, MySQL, MongoDB e altro ..

  • Il mio motore di visualizzazione preferito: EJS. Non c'è bisogno di imparare cose nuove per sviluppare il tuo livello di presentazione. È anche il motore di visualizzazione integrato e predefinito di SailsJs, ecco perché sono un fan di SailsJs.

Penso, ho coperto tutte le informazioni importanti per creare un'applicazione Enterprise in NodeJs. Non dico, sopra i pacchetti sono i migliori, ma in collaborazione, possono essere adattati meglio a qualsiasi scenario aziendale. Esistono altri pacchetti noti, che è possibile utilizzare in base alle proprie esigenze.

+2

waterline e sails.js +1 –

+2

Non hai menzionato la tua architettura front-end. Se l'applicazione utilizza un'architettura SPA in cui è possibile avere più client (sito Web angolare, sito di amministrazione angolare, app mobile) che interagiscono con un'API REST, raccomanderei Satellizer su Passport per l'autenticazione. – owlyfool

+1

@Amreesh hai risposto a questo oround 4 anni fa, aggiorneresti la tua risposta con i moduli attuali, le strutture che usi? – kosnkov

12

Ecco alcune informazioni per iniziare:

Spero che sia più facile iniziare.

+0

Grazie! Controllerò quei link. L'esempio di middleware per il percorso espresso sembra molto vicino al caso d'uso che ho –

+39

Strano che la risposta non contenga la parola Autorizzazione :) – redben

+1

Risposta perfetta, mi ha aiutato molto. Anche senza la parola autorizzazione :) –

1

Devo dire che Node-Authorization è anche un buon candidato. L'idea è presa in prestito da SAP (provider ERP), è un'autorizzazione orientata agli oggetti. E può anche essere usato come accompagnamento con altri framework come: Passport ed Express.

Problemi correlati