Я пытаюсь получить паспорт для работы на паспорт-местном. Я перехожу к логину, но по какой-то причине, когда я пытаюсь перейти на защищенную страницу, он перенаправляет меня обратно на страницу входа. Вот код, у меня естьПаспорт NodeJS Express местный логин
app.js
var passport = require('passport');
var routes = require('./routes/index');
var app = express();
app.use(passport.initialize());
app.use(passport.session());
app.use('/', routes);
маршруты/index.js
var passport = require('passport');
var Strategy = require('passport-local').Strategy;
var manager = require('connect-ensure-login');
var db = require('../db');
/* Authentication */
passport.serializeUser(function(user, done) {
done(null, user);
});
passport.deserializeUser(function(user, done) {
done(null, user);
});
passport.use(new Strategy(function(username, password, done) {
db.users.findByUsername(username, function(err, user) {
if (err) { return done(err); }
if (!user) { return done(null, false); }
if (user.password != password) { return done(null, false); }
return done(null, user);
});
}));
/* Login Page */
router.get('/login', function(req, res) {
res.render('login', { title: 'Login' });
});
router.post('/login', passport.authenticate('local', {
successRedirect: '/',
failureRedirect: '/login'
})
);
/* Home Page */
router.get('/', manager.ensureLoggedIn(), function(req, res) {
res.render('index', { title: 'Order Search' });
});
Я думаю, что проблема может быть, это я не установить сеанс правильно и я теряю он на смену страницы. Спасибо за любую помощь
Update # 1
Поэтому я добавил экспресс сессии, но до сих пор я с такой же вопрос
app.js
var passport = require('passport');
var session = require('express-session');
var routes = require('./routes/index');
var app = express();
app.use(passport.initialize());
app.use(passport.session());
app.use(session({ secret: 'keyboard cat', resave: true, saveUninitialized: true }));
app.use('/', routes);
У объекта-объекта отсутствует функция сеанса. Нужно ли мне использовать что-то еще? – jrock2004
Я отредактировал ответ. –
Итак, я добавил его, см. Обновление 1. Но все же я не вижу его. Вы сказали, что я должен посмотреть, что находится на моей сессии. Как я могу это сделать? – jrock2004