Opa, bom dia Wanderson. Obrigado pela resposta.
Então, estou tentando seguir pelo documentação deles mas não estou tendo sucesso. O erro que acontece na execução do Node é o seguinte:
'ReferenceError: passport is not defined'
O erro acontece no arquivo das rotas, pois adicionei uma função para login. Arquivo de rota do home ficou assim:
module.exports = function(app) {
app.get('/', function(req, res) {
if (req.isAuthenticated()) {
var connection = app.infra.connectionFactory();
var produtosDAO = new app.infra.ProdutosDAO(connection);
produtosDAO.lista(function(erros, resultados) {
res.render('home/index', {
livros: resultados
});
});
connection.end();
} else {
console.log("else");
}
});
// process the login form
app.post('/login', passport.authenticate('local-login', {
successRedirect: '/profile', // redirect to the secure profile section
failureRedirect: '/login', // redirect back to the signup page if there is an error
failureFlash: true // allow flash messages
}),
function(req, res) {
console.log("ok");
if (req.body.remember) {
req.session.cookie.maxAge = 1000 * 60 * 3;
} else {
req.session.cookie.expires = false;
}
res.redirect('/');
});
}
O meu arquivo do express está da seguinte maneira:
var express = require('express');
var load = require('express-load');
var bodyParser = require('body-parser');
var expressValidator = require('express-validator');
var session = require('express-session');
var cookieParser = require('cookie-parser');
var morgan = require('morgan');
var flash = require('connect-flash');
var passport = require('passport'),
LocalStrategy = require('passport-local').Strategy;
passport.use(new LocalStrategy(
function(username, password, done) {
User.findOne({
username: username
}, function(err, user) {
if (err) {
return done(err);
}
if (!user) {
return done(null, false, {
message: 'Incorrect username.'
});
}
if (!user.validPassword(password)) {
return done(null, false, {
message: 'Incorrect password.'
});
}
return done(null, user);
});
}
));
module.exports = function() {
var app = express();
app.set('view engine', 'ejs');
app.set('views', './app/views');
app.use(express.static('./app/public'));
app.use(morgan('dev'));
app.use(cookieParser());
app.use(bodyParser.urlencoded({
extended: true
}));
app.use(bodyParser.json());
app.use(session({
secret: 'vidyapathaisalwaysrunning',
resave: true,
saveUninitialized: true
}));
app.use(passport.initialize());
app.use(session());
app.use(flash());
app.use(expressValidator());
load('routes', {
cwd: 'app'
})
.then('infra')
.into(app);
app.use(function(req, res, next) {
console.log(process.env.NODE_ENV);
res.status(404).render('erros/404');
next();
});
app.use(function(error, req, res, next) {
console.log(process.env.NODE_ENV);
if (process.env.NODE_ENV == 'production') {
res.status(500).render('erros/500');
return;
}
next(error);
});
return app;
}
Acredito que estou errando em algo dentro do express, mas ainda não consegui identificar o que pode ser.
Obrigado.