ola,estou sempre recebendo a pagina ops ao logar.
const template = require('../views/template')
const LivroC = require('../controllers/livro-controller');
const passport = require('passport');
class BaseController
{
static rotas()
{
return {
home: '/',
login: '/login' // nova URL de rota adicionada.
};
}
home()
{
return function(req, resp) {
resp.marko(
template.base.home
);
};
}
login() {
return function(req, resp) {
resp.marko(template.base.login);
};
}
efetuaLogin() {
return function(req, resp, next) {
passport.authenticate('local', (erro, usuario, info) => {
if (info) {
return resp.marko(template.base.login);
}
if (erro) {
return next(erro);
}
req.login(usuario, (erro) => {
if (erro) {
return next(erro);
}
return resp.redirect(LivroControlador.rotas().lista);
});
}) (req, resp, next);
};
}
}
module.exports = BaseController;
imodule.exports = (app) => {
passport.use(new LocalStrategy(
{
usernameField: 'email',
passwordField: 'senha'
},
(email, senha, done) => {
const usuarioDao = new UsuarioDao(db);
usuarioDao.buscaPorEmail(email)
.then(usuario => {
if (!usuario || senha != usuario.senha) {
return done(null, false, {
mensagem: 'Login e senha incorretos!'
});
}
return done(null, usuario);
})
.catch(erro => 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
}));