const uuid = require('uuid/v4');
const sessao = require('express-session');
const passport = require('passport');
const LocalStrategy = require('passport-local').Strategy;
const db =require('./database')
const UsuarioDao = require('../app/infra/usuario-dao')
module.exports = (app) => {
passport.use(new LocalStrategy(),
{
usernameField : 'email',
passwordField : 'senha'
}),
(email,senha,done) =>
{
const usuario = new UsuarioDao(db);
usuario.buscaPorEmail(email)
.then(user=>
{
if(!user || user.senha != senha)
{
return done(null,false,
{
mensagem:'login e senha incorrretos'
})
}
return done(mull,true,user)
})
.catch(erro=>
{
return done(erro,false)
})
}
passport.serializeUser((usuario,done)=>
{
const usuarioSessao =
{
nome : usuario.nome_completo,
email : usuario.email
}
done(null,usuarioSessao);
})
passport.deserializeUser((usuarioSessao,done)=>
{
done(null,usuarioSessao);
})
app.use(sessao({
secret : 'node alura',
genid : function(req)
{
return uuid()
},
resave: false,
saveUninitialized : false
}))
app.use(passport.initialize())
app.use(passport.session())
}
fala ae pessoal , o passport e o session sao configurados separados correto? so passam a trabalhar juntos quando e feito este comando : app.use(passport.initialize()) app.use(passport.session())
e isso?
outra coisa o passport serve somente para veriricar se os dados estao corretos , para facilitar essa verificaçao, poderia me dar um exemplo sem uso dele , para eu poder ver como ele simplifica isso?
alem disso,o secret seria o hash de sessao?