4.0 KiB
4.0 KiB
id | title | challengeType | videoUrl | localeTitle |
---|---|---|---|---|
5895f70df9fc0f352b528e68 | Authentication Strategies | 2 | Estrategias de autenticación |
Description
const LocalStrategy = require('passport-local');
Ahora tendrá que decirle al pasaporte que use un objeto LocalStartegy instanciado con algunas configuraciones definidas. ¡Asegúrese de que esto, así como todo, a partir de este momento esté encapsulado en la conexión de la base de datos ya que depende de ello! passport.use (nueva LocalStrategy ( función (nombre de usuario, contraseña, hecho) { db.collection ('usuarios'). findOne ({nombre de usuario: nombre de usuario}, función (err, usuario) { console.log ('Usuario' + nombre de usuario + 'intentó iniciar sesión'); if (err) {return done (err); } if (! user) {return done (null, false); } if (password! == user.password) {return done (null, false); } retorno realizado (nulo, usuario); }); } ));Esto es definir el proceso a seguir cuando intentamos autenticar a alguien localmente. Primero, trata de encontrar un usuario en nuestra base de datos con el nombre de usuario ingresado, luego verifica que la contraseña coincida, y finalmente, si no aparece ningún error que verifiquemos, como una contraseña incorrecta, se devuelve el objeto de los usuarios y son autenticado Sin embargo, muchas estrategias se configuran con diferentes configuraciones, en general, es fácil configurarlo en función del README en ese repositorio de estrategias. Un buen ejemplo de esto es la estrategia de Github en la que no debemos preocuparnos por un nombre de usuario o contraseña, ya que el usuario será enviado a la página de autenticación de Github para autenticarse y siempre que inicie sesión y acepte, Github devuelve su perfil para que usemos En el siguiente paso, configuraremos cómo llamar realmente a la estrategia de autenticación para validar a un usuario en base a los datos del formulario. Envíe su página cuando crea que la tiene hasta este punto.
Instructions
Tests
tests:
- text: Pasaporte local es una dependencia
testString: ' getUserInput => $.get(getUserInput("url")+ "/_api/package.json") .then(data => { var packJson = JSON.parse(data); assert.property(packJson.dependencies, "passport-local", "Your project should list "passport-local " as a dependency"); }, xhr => { throw new Error(xhr.statusText); })'
- text: Pasaporte local correctamente requerido y configuración
testString: 'getUserInput => $.get(getUserInput("url")+ "/_api/server.js") .then(data => { assert.match(data, /require.*("|")passport-local("|")/gi, "You should have required passport-local"); assert.match(data, /new LocalStrategy/gi, "You should have told passport to use a new strategy"); assert.match(data, /findOne/gi, "Your new local strategy should use the findOne query to find a username based on the inputs"); }, xhr => { throw new Error(xhr.statusText); })'
Challenge Seed
Solution
// solution required