it-swarm-pt.tech

Abordagens de autorização e padrões de design para aplicativos Node.js

Eu estou construindo uma interface de administração de múltiplas páginas para uma plataforma interna de software corporativo. Pense em muita lógica de colagem unindo várias APIs, consultas do banco de dados e scripts do Shell.

Estaremos usando o node.js, o framework expresso (incluindo modelos de jade) e o LDAP para autenticação.

Eu estou lutando para encontrar informações sobre padrões de design e melhores práticas para autorização em aplicativos de nó. De preferência, gostaria de usar o modelo baseado em funções, já que meus usuários estão familiarizados com essa abordagem e seus cuidados e alimentação.

Eu sou novo em node.js, então, por favor, não assuma que eu já vi um módulo ou post popular. É provável que haja muitas informações e eu simplesmente não sei onde procurar.

Agradecemos antecipadamente por qualquer informação que você é capaz de fornecer!

73
Dave Snigier

De acordo com sua primeira pergunta, você deseja implementar alguns processos de autorização no NodeJs. Eu explorei e usei o número de APIs do NodeJs. Eu preferiria seguir APIs para aplicativos corporativos.

  • Para autenticação: Passaporte ou Satellizer se estiver desenvolvendo o SPA (front-end) no AngularJS.

  • Para Autorização: ACL . Segurança baseada em função em APIs de métodos e REST.

Segundo, você quer alguma implementação e abordagem de desenvolvimento no NodeJs.

  • Fácil e meu padrão de design favorito e Framework para NodeJs: framework MVC, SailsJs . Por seu pronto para começar e arquitetura modular. O gerenciamento de código é fácil a longo prazo (requisito mais prático para um aplicativo corporativo). Manutenção fácil. SailsJs também é pré-configurado com Socket.io , usando o qual você pode criar módulos em tempo real, widgets, widgets de bate-papo em seu projeto.

  • Express Você pode usar o Express e projetar sua própria estrutura de projeto MVC personalizada. Isso também é popular e robusto. Você pode encontrar projetos populares de sementes do mesmo em Yeoman

  • Redis Como uma camada de cache ou sessão. É sempre bom usar cache em separado ou camada de sessão, porque isso não o impedirá de dimensionar seu aplicativo na nuvem para enésimas instâncias. 

  • Você pode usar Redis e Socket.io para criar recursos em tempo real como Geo-localização , presença do usuário (on-line/off-line), bate-papo, notificação push e muito mais.

  • ORM: Linha d'água . Por sua abordagem fácil de consulta. É também o ORM inerente e padrão do SailsJs. Você também pode usar Sequelizejs , se não estiver usando o SailsJs. Eu recomendaria usar conectores nativos fornecidos por provedores de banco de dados.

  • Banco de dados: como por sua exigência. Waterline ORM suporta PostgreSQL, MySQL, MongoDB e muito mais ..

  • Meu mecanismo de visualização faviourite: EJS . Não há necessidade de aprender coisas novas para desenvolver sua camada de apresentação. É também o mecanismo de visualização embutido e padrão do SailsJs, é por isso que eu sou fã do SailsJs.

Eu acho que cobri todas as informações importantes para criar um aplicativo corporativo no NodeJs. Eu não digo, os pacotes acima são melhores, mas de forma colaborativa, eles podem ser melhor adaptados a qualquer cenário empresarial. Existem outros pacotes conhecidos, que você pode usar de acordo com suas próprias necessidades.

51
Amreesh Tyagi

Aqui estão algumas informações para começar:

Espero que seja mais fácil começar.

14
zemirco

Eu deveria dizer Node-Authorization também é um bom candidato. A ideia é emprestada da SAP (provedor de ERP), é uma autorização orientada a objetos. E também pode ser usado como acompanhamento de outros frameworks como: Passport e Express.

1
Kai Zhang

Outra opção é usar CASL que é muito bom integrado ao MongoDB. Também há um artigo de como integrar a autorização com base no CASL no app expressjs - https://medium.com/@sergiy.stotskiy/authorization-with-casl-in-express-app-d94eb2e2b73b

0
Sergii Stotskyi