4.0 KiB
4.0 KiB
id | title | challengeType | videoUrl | localeTitle |
---|---|---|---|---|
5895f70df9fc0f352b528e68 | Authentication Strategies | 2 | Estratégias de Autenticação |
Description
const LocalStrategy = require('passport-local');
Agora você terá que dizer ao passport para usar um objeto LocalStartegy instanciado com algumas configurações definidas. Certifique-se de que isso e tudo a partir deste ponto é encapsulado na conexão com o banco de dados, pois depende dele! passport.use (novo LocalStrategy ( função (nome de usuário, senha, feito) { db.collection ('users'). findOne ({username: username}, função (err, user) { console.log ('Usuário' + nome de usuário + 'tentou efetuar login.'); if (err) {retorno feito (err); } if (! user) {retorno concluído (null, false); } if (password! == user.password) {retorno feito (null, false); } retorno feito (null, usuário); }); } ));Isso está definindo o processo a ser tomado quando tentamos autenticar alguém localmente. Primeiro, ele tenta encontrar um usuário em nosso banco de dados com o nome de usuário inserido, depois verifica se a senha corresponde e, finalmente, se não houver erros que verifiquemos, como uma senha incorreta, o objeto users será retornado e eles serão exibidos. autenticado. Muitas estratégias são configuradas usando diferentes configurações, em geral é fácil configurá-lo com base no README desse repositório de estratégias. Um bom exemplo disso é a estratégia do Github, onde não precisamos nos preocupar com um nome de usuário ou senha, porque o usuário será enviado para a página de autenticação do Github para autenticar e, desde que esteja logado e concordar, o Github retorna seu perfil para nos usar. Na próxima etapa, vamos configurar como chamar a estratégia de autenticação para validar um usuário com base nos dados do formulário! Envie sua página quando achar que está correta até o momento.
Instructions
Tests
tests:
- text: Passport-local é uma dependência
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: Passport-local corretamente requerido e configuração
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