A autenticação serve para identificar usuários e fornecer diferentes direitos de acesso e conteúdo, dependendo do seu id. Como novos tutoriais aparecem na web e mais pessoas tentam entender a equação de custo-benefício para implementar sua própria solução versus usar uma biblioteca ou serviço, reunimos uma breve revisão do que está por aí. Confira abaixo algumas opções:
1. Passaport
O Passport é um middleware de autenticação compatível com o Express para o Node.js. O objetivo do Passport é autenticar solicitações, o que é feito por meio de um conjunto extensível de plugins conhecidos como estratégias. Ele não monta rotas nem assume qualquer esquema de banco de dados específico, o que maximiza a flexibilidade e permite que decisões do nível do aplicativo sejam tomadas pelo desenvolvedor. A API é simples: você fornece ao Passport uma solicitação para autenticação e o Passport fornece ganchos para controlar o que ocorre quando a autenticação é bem-sucedida ou falha.
O Passport não é apenas uma biblioteca user-auth amplamente usada, é provavelmente a maneira mais comum de usar uma biblioteca externa para autenticação do usuário por desenvolvedores JS. Basicamente, esta biblioteca oferece o Node.js middleware relativamente flexível e modular que pode ser integrado em qualquer aplicação web baseada no Express.
2. Permit
Antes da Permit, a única opção real para bibliotecas de autenticação no Node.js era o Passport.js. O Permit facilita a adição de uma camada de autenticação a qualquer API do Node.js. Ele pode ser usado com qualquer uma das estruturas de servidor populares (por exemplo, Express, Koa, Hapi, Fastify) e pode ser usado para qualquer tipo de API (por exemplo, REST, GraphQL, etc.) devido ao seu design simples e não animado.
Também, o Permit permite que você se autentique por meio dos dois esquemas que a maioria das APIs precisa: um único token de portador secreto ou um conjunto de credenciais de nome de usuário e senha. Como a bilbioteca não é fortemente acoplada a um framework ou modelo de dados, ela fornece controle total sobre como você escreve sua lógica de autenticação – exatamente da mesma maneira que você escreveria em qualquer outro manipulador de solicitações.
3. Grant
Uma biblioteca relativamente nova e promissora com mais de 180 fornecedores suportados e um playground ao vivo para Express, Koa e Hapi com o OAuth Middleware. Se você quiser usá-lo com seu provedor OAuth particular, poderá especificar a chave necessária. Embora esta biblioteca já tenha tração (+1 K estrelas), ela tem relativamente poucos recursos, então tente com cuidado.
4. Feathers
Feathers é uma estrutura open source para o NodeJS que permite controlar seus dados por meio de recursos RESTful, soquetes e plug-ins flexíveis em tempo real. O Feathers também oferece módulos de autenticação e gerenciamento de autenticação que permitem adicionar verificação, redefinição de senhas esquecidas e outros recursos para autenticar as penas locais.
A ideia geral é combinar vários métodos de autenticação em uma infraestrutura flexível sob o mesmo teto.
5. Autenticação do Firebase (para pequenos aplicativos)
A autenticação do Firebase é necessária para fornecer aos seus usuários privilégios de leitura/gravação por meio de regras de segurança. Ainda não abordamos as regras de segurança, mas sabemos apenas que as regras de segurança dependem do status de autenticação de um usuário.
O Firebase envia o Google, o Facebook, o Twitter e o GitHub com suas próprias integrações de email/senha auth e OAuth2. Você também pode integrar seus próprios autores a ele para fornecer aos usuários acesso aos dados sem forçá-los a criar uma conta fora dos sistemas existentes.
O Firebase pode não ser a solução de longo prazo para gerenciar a autenticação do usuário em sua plataforma de dimensionamento (ou é?). Mas é uma maneira muito útil de realizar seus aplicativos implantados com o Firebase de maneira rápida e fácil.