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 : 5001  
 
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 END DEVELOPMENT.

 
 
 

Artículos relacionados

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…

Modo oscuro persistente con CSS y JS

Recientemente escribimos acerca de cómo hacer un modo de color o tema alternativo intercambiable, una característica muy útil y popular para los sitios web. El artículo de hoy tratará sobre…

Modo oscuro en el sitio web usando CSS y JavaScript

En el artículo de hoy vamos a aprender a construir más o menos estándar en estos días en las páginas web y que es el modo de color alternativo y…

Javascript: los operadores Spread y Rest

En el artículo de hoy vamos a hablar de una de las características de la versión ES6 (ECMAScript 2015) de JavaScript que es el operador Spreadasí como el operador Rest. Estas…

Cookies HTTP: cómo funcionan y cómo usarlas

Hoy vamos a escribir sobre la forma de almacenar datos en un navegador, por qué los sitios web utilizan cookies y cómo funcionan en detalle. Continúa leyendo para averiguar cómo implementarlas…

Todas las funciones de javascript y los métodos para manipular los arrays

Este artículo mostrará las funciones prominentes de las arrays de JavaScript, entre ellas .map() , .filter() , y .reduce() , y luego pasará a través de ejemplos de casos en los que .every() …

Como construir mejores componentes de alto nivel (Higher-order components) con el Vue 3

El Vue 3 será lanzado pronto con la introducción del API de composición (Composition API). Viene con muchos cambios y mejoras en el rendimiento. Los componentes de orden superior (HOC…

Node.js: herramientas de código abierto para los desarrolladores

De la amplia gama de herramientas disponibles para simplificar el desarrollo de Node.js, aquí están las mejores. Una encuesta en StackOverflow afirma que el 49% de los desarrolladores usan Node.js para…

Renderización lado servidor de Vue.js on Php

¿Intentas que el renderizado del lado del servidor funcione con PHP para renderizar tu aplicación Vue.js pero se atasca? Hay un montón de grandes recursos por ahí, pero hasta ahra no…

Utilizamos cookies propias y de terceros para mejorar nuestros servicios, elaborar información estadística y analizar tus hábitos de navegación. Esto nos permite personalizar el contenido que ofrecemos y mostrarte publicidad relacionada con tus preferencias. Clicando en ‘Acepta todas’ aceptas el almacenamiento de cookies en tu dispositivo para mejorar la navegación en el sitio web, analizar el tráfico y ayudar en nuestras actividades de marketing. También puedes seleccionar ‘Sólo cookies de sistema’ para aceptar sólo las cookies necesarias para que la web funcione, o puedes seleccionar las cookies que quieres activar clicando en ‘Configuración’

Acepta todas Sólo cookies de sistema Configuración