---
description: Simple, unobtrusive authentication for Node.js
---

# Passport.js 🎟

Implementar estrategias de autenticación robustas para cualquier aplicación puede ser una tarea desalentadora pero en Node.js esta tarea es un poco mas simple.‌

En este paso vamos a usa un muy popular middleware de autenticación - [Passport](http://passportjs.org/) para que se haga cargo de nuestros problemas de autenticación.

> La documentación de Passport lo describe como un "simple, no intrusivo middleware de autenticación para Node" y con razón.

Al proporcionarse a sí mismo como un middleware, Passport hace un excelente trabajo separando las labores de una aplicación web de sus necesidades de autenticación. Esto le permite a Passport ser facílmente configurado en cualquier aplicación basada en [Express](http://expressjs.com/), tal y como configuramos otros middleware de Express como [logging](https://github.com/expressjs/morgan), [body-parsing](https://github.com/expressjs/body-parser), [cookie-parsing](https://github.com/expressjs/cookie-parser), session-handling, etc.‌

### Estrategias de Autenticación <a href="#estrategias-de-autenticacion" id="estrategias-de-autenticacion"></a>

Passport nos provee de mas de 500 mecanismos de autenticación para escoger. Puede autenticarse en una instancia de base de datos local / remota o utilizar el inicio de sesión único utilizando los proveedores de OAuth para [Facebook](https://github.com/jaredhanson/passport-facebook), [Twitter](https://github.com/jaredhanson/passport-twitter), [Google](https://github.com/jaredhanson/passport-google), etc. para autenticarse con sus cuentas de redes sociales o puede elegir entre una extensa lista de [proveedores](http://passportjs.org/guide/providers/) que admiten autenticación Con Passport y proporcionar un módulo de node para eso.‌

Pero no te preocupes: no necesitas incluir ninguna estrategia/mecanismo que tu aplicación no necesite. Todas estas estrategias son independientes entre sí y están empaquetadas como módulos node separados, los cuales no están incluidos por defecto cuando instalas el middleware Passport: `npm install passport`‌

En este workshop, utilizaremos la Estrategia de autenticación local de Passport y autenticaremos a los usuarios contra una instancia de Mongo DB configurada en Mongo Atlas, almacenando los detalles de usuario en la base de datos. Para usar la Estrategia de autenticación local, necesitamos instalar el módulo [passport-local](https://github.com/jaredhanson/passport-local): `npm install passport-local`‌

### Adición de dependencias del proyecto <a href="#adicion-de-dependencias-del-proyecto" id="adicion-de-dependencias-del-proyecto"></a>

Abra la terminal y agregue las dependencias para los módulos `passport` y `passport-local`.

```bash
# Install dependencies
npm i -S passport passport-local
```

[\
](https://app.gitbook.com/@khriztianmoreno/s/workspace/v/master/backend/mongoosejs/retos)
