5 Librerias Javascript gratis para la autenticación de usuarios

by Janeth Kent Date: 07-06-2019 javascript frameworks librerias autenticacion

Nos interesa la seguridad: la autenticación es una cuestión importante a la hora de crear una aplicación web dinámica.

La autenticación es para identificar a los usuarios y proporcionar diferentes derechos de acceso y contenido dependiendo de su identificación. Dado que aparecen nuevos tutoriales en la web y más gente trata de entender la ecuación costo-beneficio para implementar su propia solución en lugar de usar una biblioteca o servicio, hemos reunido una breve reseña de lo que hay ahí fuera.

Veamos.

 

1. Passport JS


Passport es un middleware de autenticación compatible con Express para Node.js.

El único propósito de Passport es autenticar las solicitudes, lo que se hace a través de un conjunto extensible de plugins conocidos como estrategias. Passport no monta rutas ni asume ningún esquema de base de datos en particular, lo que maximiza la flexibilidad. La API es simple: se proporciona a Passport una solicitud de autenticación, y Passport proporciona los hooks/ganchos para controlar lo que ocurre cuando la autenticación tiene éxito o falla.

Passport es probablemente la forma más común de utilizar una librería externa para la autenticación del los usuarios por parte de los desarrolladores. Básicamente, en una librería relativamente flexible y modular que puede ser integrada en cualquier aplicación web basada en Express.
 

2. Permit

Antes de Permit, la única opción real para las bibliotecas de autenticación en Node.js era Passport.js. Permit permite añadir una capa o layer de autenticación a cualquier API de Node.js. Se puede utilizar con server frameworks populares como Express, Koa, Hapi, Fastify y se puede utilizar para cualquier tipo de API (p.ej. REST, GraphQL, etc.) debido a su diseño simple y sin opciones.

Permit le permite autenticarse a través de los dos esquemas que la mayoría de las APIs necesitan: un único token secreto o un conjunto de credenciales de nombre de usuario y contraseña. Por ejemplo, he aquí cómo autenticar un token :

 

 

import { Bearer } from 'permit'
// A permit that checks for HTTP Bearer Auth, falling back to a query string.
const permit = new Bearer({
query: 'access_token',
})
async function handler({ req, res }) {
// Try to find the bearer token in the request.
const token = permit.check(req)
// No token, that means they didn't pass credentials!
if (!token) {
permit.fail(res)
throw new Error(`Authentication required!`)
}
// Authenticate the token however you'd like...
const user = await db.users.findByToken(token)
// No user, that means their credentials were invalid!
if (!user) {
permit.fail(res)
throw new Error(`Authentication invalid!`)
}
// They were authenticated, so continue with your business logic...
...
}

 


Dado que Permit no está estrechamente vinculado a un framework o modelo de datos, le ofrece un control total sobre cómo escribir su lógica de autenticación, del mismo modo que lo haría con cualquier otro gestor de solicitudes.

Diferencias entre Permit y Passport:

Passport no se centra en la autenticación de APIs. Passport se centra en la autenticación de aplicaciones web con servicios como Facebook, Twitter y GitHub. Las APIs no necesitan eso, así que todo esto podría significar trabajo extra.

Pasaporte está bien acoplado a Express. Si usas Koa, Hapi, Fastify, o algún otro framework, tienes que hacer todo lo posible para que funcione bien.

Otros middleware están estrechamente acoplados a él. Passport almacena datos nel req object, por lo que el resto de los middlewares están estrechamente vinculados a su implementación, lo que hace que su base de código sea frágil.

Por eso, es muy difícil hacer un debug. Debido a la arquitectura de caja negra de Passport, siempre que necesite depurar un problema, tendrá que seguir su lógica a través de muchas capas y muchos repositorios.

No tiene un mantenimiento constante. El enfoque de Passport en los proveedores de OAuth significa que utiliza una gran cantidad de repositorios, muchos de los cuales ya no son mantenidos activamente.

 

3. Grant

Una biblioteca relativamente nueva y prometedora con más de 180 proveedores compatibles y un playground para Express, Koa y Hapi con OAuth Middleware. Si deseas utilizarlo con su propio proveedor privado de OAuth, puede especificar la clave necesaria. Aunque esta librería ya tiene seguidores (+ 1 K estrellas), tiene relativamente pocos recursos, así que pruebala pero ten cuidado.

 

4. Feathers

Feathers es un framework web de código abierto para NodeJS que te permite controlar sus datos a través de recursos RESTful, sockets y plug-ins flexibles en tiempo real. Feathers también ofrece módulos de administración de autenticación que te permiten agregar verificación, restablecimiento de contraseñas y muchas otras funciones.

La idea general es combinar múltiples métodos de autenticación en una única infraestructura flexible.

 

5. Firebase Authentication

La autenticación Firebase es útil si quieres proporcionar a tus usuarios privilegios de lectura/escritura a través de reglas de seguridad.

Firebase Auth incluye un sistema de gestión de usuarios. Puede guardar algunos datos básicos, ofrecer múltiples métodos de acceso (correo electrónico/contraseña, Google, Facebook...) y vincular las cuentas de sus usuarios a una sola cuenta de usuario de Firebase Auth. Auth también proporciona integraciones en su sistema de autenticación preexistente para que su aplicación pueda aprovechar las reglas de seguridad de Firebase.

Firebase puede no ser la solución a largo plazo para la gestión de la autenticidad de los usuarios en una plataforma escalable. Pero es una forma muy útil a la hora de empezar ya que su curva de aprendizaje es relativamente rápida.

 

 

 

Business vector created by rawpixel.com - www.freepik.com

 

 

 

 
by Janeth Kent Date: 07-06-2019 javascript frameworks librerias autenticacion visitas : 12862  
 
Janeth Kent

Janeth Kent

Licenciada en Bellas Artes y programadora por pasión. Cuando tengo un rato retoco fotos, edito vídeos y diseño cosas. El resto del tiempo escribo en MA-NO WEB DESIGN AND DEVELOPMENT.

 
 
 

Artículos relacionados

Crear PDF con Javascript y jsPDF

El formato PDF es muy útil para descargar datos de forma masiva en una aplicación web. Ayuda a los usuarios a descargar contenido dinámico en forma de archivo para que…

Como hacer tu propio cursor personalizado para tu web

Cuando empecé a ojear webs distintas y originales para aprender de ellas, de las primeras cosas que me llamaron la atención fue que algunas de ellas tenían sus propios cursores,…

Explorando la API de CSS Paint: Redondeo de formas parte 1

Añadir bordes a las formas complejas es un auténtico rollo (a veces), pero redondear las esquinas de las formas complejas es un suplicio jejeje. Por suerte, la API de pintura…

Cómo enviar un correo electrónico desde un formulario de contacto HTML

En el artículo de hoy vamos a escribir sobre cómo hacer un formulario que funcione y que al pulsar ese botón de envío sea funcional y envíe el correo electrónico…

Cómo hacer un sitio web multilingüe sin redireccionamiento

Hoy, vamos a hablar de cómo implementar un simple selector de idioma en el sitio web estático o básico, sin necesidad de ningún backend o llamadas a la base de…

Comenzando con Bootstrap-Vue paso a paso

Hoy te mostraremos cómo usar BootstrapVue, describiremos el proceso de instalación y mostraremos la funcionalidad básica. El proyecto está basado en el framework CSS más popular del mundo - Bootstrap, para…

Por qué los desarrolladores de JavaScript deberían preferir Axios a Fetch

Por qué los desarrolladores de JavaScript deberían preferir Axios a Fetch En mi artículo anterior, "Usando la Api Fetch Para Hacer Llamadas Ajax", hablé de los fundamentos de la API Fetch.…

Creación de un sencillo spinner-loader CSS

En el artículo de hoy mostraremos cómo animar un loader básico que gira cuando se define alguna acción predefinida, como cargar una imagen. Eso se puede utilizar en un sitio…

Los mejores selectores de fechas para Bootstrap y tu aplicación

Los selectores de fecha son widgets que permiten a los usuarios elegir una sola fecha o rango de fechas y horas. Es un elemento habitual para todo usuario de Internet,…

Validación de formularios HTML usando BULMA y vanilla JavaScript

Hoy vamos a escribir sobre los formularios de contacto y cómo validarlos usando JavaScript. El formulario de contacto parece ser una de las características principales de toda página web básica. Es…

Cómo usar el efecto Parallax.Js en tu sitio web

Hoy vamos a escribir sobre el efecto de parallax, similar al desplazamiento de parallax, y cómo implementarlo para mejorar su página de aterrizaje. En webdev, dicen que primero el móvil…

Usando la API FETCH para hacer llamadas AJAX - Una promesa cumplida

En este artículo hablamos sobre lo que son las llamadas AJAX y cómo utilizarlas de forma tradicional, utilizando el objeto XMLHttpRequest (XHR). En resumen, gracias a las llamadas AJAX una…

Clicky