freeCodeCamp/curriculum/challenges/spanish/06-information-security-and.../advanced-node-and-express/set-up-passport.spanish.md

4.4 KiB

id title challengeType videoUrl localeTitle
5895f70cf9fc0f352b528e65 Set up Passport 2 Configurar pasaporte

Description

Como recordatorio, este proyecto se está construyendo sobre el siguiente proyecto de inicio en Glitch , o clonado desde GitHub . Es hora de configurar Passport para que finalmente podamos comenzar a permitir que un usuario se registre o inicie sesión en una cuenta. Además de Passport, usaremos Express-session para manejar las sesiones. El uso de este middleware guarda el id de sesión como una cookie en el cliente y nos permite acceder a los datos de la sesión usando ese id en el servidor. De esta manera, mantenemos la información de la cuenta personal fuera de la cookie utilizada por el cliente para verificar que nuestro servidor esté autenticado y solo mantengamos la clave para acceder a los datos almacenados en el servidor. Para configurar Passport para su uso en su proyecto, primero deberá agregarlo como una dependencia en su package.json. "passport": "^0.3.2" Además, agregue Express-session como una dependencia ahora también. Express-session tiene un montón de funciones avanzadas que puedes usar, ¡pero por ahora solo usaremos lo básico! "express-session": "^1.15.0" Deberá configurar los ajustes de la sesión ahora e inicializar Passport. Asegúrese de crear primero las variables 'sesión' y 'pasaporte' para requerir 'sesión rápida' y 'pasaporte' respectivamente. Para configurar su aplicación Express para usar la sesión, definiremos solo algunas opciones básicas. Asegúrese de agregar 'SESSION_SECRET' a su archivo .env y asígnele un valor aleatorio. Esto se usa para calcular el hash utilizado para cifrar su cookie.
 app.use (sesión ({
  secreto: process.env.SESSION_SECRET,
  resave: verdadero,
  saveUninitialized: true,
})); 
También puede continuar y decirle a su aplicación Express que use 'passport.initialize ()' y 'passport.session ()'. (Por ejemplo, app.use(passport.initialize()); ) Envíe su página cuando crea que la tiene correcta. Si está teniendo errores, puede consultar el proyecto completado hasta este punto aquí .

Instructions

Tests

tests:
  - text: Passort y Express-Session son dependencias.
    testString: 'getUserInput => $.get(getUserInput("url")+ "/_api/package.json") .then(data => { var packJson = JSON.parse(data); assert.property(packJson.dependencies, "passport", "Your project should list "passport" as a dependency"); assert.property(packJson.dependencies, "express-session", "Your project should list "express-session" as a dependency"); }, xhr => { throw new Error(xhr.statusText); })'
  - text: Dependencias requeridas correctamente
    testString: 'getUserInput => $.get(getUserInput("url")+ "/_api/server.js") .then(data => { assert.match(data, /require.*("|")passport("|")/gi, "You should have required passport"); assert.match(data, /require.*("|")express-session("|")/gi, "You should have required express-session"); }, xhr => { throw new Error(xhr.statusText); })'
  - text: La aplicación Express usa nuevas dependencias
    testString: 'getUserInput => $.get(getUserInput("url")+ "/_api/server.js") .then(data => { assert.match(data, /passport.initialize/gi, "Your express app should use "passport.initialize()""); assert.match(data, /passport.session/gi, "Your express app should use "passport.session()""); }, xhr => { throw new Error(xhr.statusText); })'
  - text: Sesión y sesión secreta correctamente configurada
    testString: 'getUserInput => $.get(getUserInput("url")+ "/_api/server.js") .then(data => { assert.match(data, /secret:( |)process.env.SESSION_SECRET/gi, "Your express app should have express-session set up with your secret as process.env.SESSION_SECRET"); }, xhr => { throw new Error(xhr.statusText); })'

Challenge Seed

Solution

// solution required