Próbuję wykonać podstawowe uwierzytelnianie za pomocą nazwy użytkownika/hasła przy użyciu pliku paszport.js i paszportu lokalnego.Przekierowanie sukcesu Express Passport.js nie ładuje strony, żądanie oczekuje na przetwarzanie
Podczas gdy failureRedirect wykonuje dokładnie to, co powinien, (przekierowuje do określonej strony), successRedirect oczekuje z żądaniem dla określonej strony, a po pewnym czasie zwraca "pustą odpowiedź".
http://www.deviantpics.com/VdG
Jak widać na tym zdjęciu, gdy prosi o deskę rozdzielczą, to mówi, że jego wielkość jest 0B, ale kiedy idę na tej desce rozdzielczej bez przekierowanie mówi, że ma 1.6b.
Rozejrzałem się po Stackoverflow i nie mogłem znaleźć odpowiedzi, która by mi pomogła.
Czy możesz sprawdzić mój kod i coś zasugerować, zanim wpadnę w szał.
to kod ładunkowych paszport
//set expression
var expressSession = require('express-session');
app.use(expressSession({
secret: credentials.session.secret
}));
//set passport
var passport = require('passport');
var localStrategy = require('./strategies/auth/local.js');
passport.use('local', localStrategy);
passport.serializeUser(function(user, done) {
done(null, user.id);
});
passport.deserializeUser(function(id, done) {
User.findById(id, function(err, user) {
done(err, user);
});
});
app.use(passport.initialize());
app.use(passport.session());
routes.js
module.exports = funkcja (APP) {
//main
app.get('/', main.home);
app.get('/login', main.login);
app.get('/signup', main.signup);
app.post('/login', auth.loginLocal);
app.post('/signup', main.checkSignup);
//user
app.get('/user/dashboard', user.dashboard);
app.get('/user/addmemory', user.addMemory);
app.get('/user/memory', user.memory);
funkcja logowania
exports.loginLocal = passport.authenticate('local', {
successRedirect: '/user/dashboard',
failureRedirect: '/login'
});
strategii lokalnej
var localAuthStrategy = 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);
});
});
funkcja dashboard
exports.dashboard = function(req, res) {
res.render('user/dashboard', {
layout: 'user'
});
};
Podobnie dla ja zapomniałem umieścić nawias na końcu serializeUser() - po cichu nie przekierowałem, ale bez błędów. Co gorsza, aplikacja działała dobrze po wprowadzeniu błędnych danych użytkownika. – Bruford