após a aula 06 não estou conseguindo logar com o usuario e senha segue o codigo:
require('marko/node-require').install();
require('marko/express');
const express = require('express');
const app = express();
const bodyParser = require('body-parser');
const methodOverride = require('method-override');
const templates = require('../app/views/templates');
app.use('/estatico', express.static('src/app/public'));
app.use(bodyParser.urlencoded({
extended: true
}));
app.use(methodOverride(function (req, res) {
if (req.body && typeof req.body === 'object' && '_method' in req.body) {
// look in urlencoded POST bodies and delete it
var method = req.body._method;
delete req.body._method;
return method;
}
}));
const sessaoAutenticacao = require('./sessao-autenticacao');
sessaoAutenticacao(app);
const rotas = require('../app/rotas/rotas');
rotas(app);
app.use(function (req, resp, next) {
console.log(erro);
return resp.status(404).marko(
templates.base.erro404
);
});
app.use(function (erro, req, resp, next) {
console.log(erro);
return resp.status(500).marko(
templates.base.erro500
);
});
module.exports = app;
const uuid = require('uuid/v4');
const sessao = require('express-session');
const passport = require('passport');
const LocalStrategy = require('passport-local').Strategy;
const usuarioDao = require('../app/infra/usuario-dao');
const db = require('./database');
module.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
}));
app.use(passport.initialize());
app.use(passport.session());
app.use(function (req, resp, next) {
req.passport = passport;
next();
});
};
const LivroControlador = require('./livro-controlador');
const templates = require('../views/templates');
class BaseControlador {
static rotas() {
return {
home: '/',
login: '/login'
};
}
home() {
return function(req, resp) {
resp.marko(
templates.base.home
);
};
}
login() {
return function(req, resp) {
resp.marko(templates.base.login);
};
}
efetuaLogin() {
return function(req, resp, next) {
const passport = req.passport;
passport.autenthicate('local', (erro, usuario, info) => {
if (info) {
return resp.marko(templates.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 = BaseControlador;