2015-09-14 20 views
5

passport.js ve passport local kullanarak temel kullanıcı adı/parola kimlik doğrulaması yapmaya çalışıyorum.Express Passport.js Başarı yönlendirmesi sayfa yüklenmiyor, beklemede tutuluyor

failureRedirect, tam olarak ne yapması gerektiğini (belirtilen bir sayfaya yönlendirir) yapsa da, successRedirect, belirtilen sayfanın isteği ile beklemede kalır ve bir süre sonra "boş yanıt" verir. o dashboard istiyor zaman

http://www.deviantpics.com/VdG

Bu resimde de görebileceğiniz gibi

, onun büyüklüğü 0B, ama yönlendirme olmadan bu gösterge tablosunda giderken o 1.6b söylüyor söylüyor.

Stackoverflow'un her yerine baktım ve bana yardımcı olacak bir yanıt bulamadım.

Kodumu kontrol edip berserk'e gitmeden önce bir şey önerebilir misiniz?

Bu pasaport yük kodudur

//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 = fonksiyonu (uygulama) {

//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); 

giriş fonksiyonu

exports.loginLocal = passport.authenticate('local', { 
    successRedirect: '/user/dashboard', 
    failureRedirect: '/login' 
}); 

yerel strateji

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); 
    }); 


}); 

pano işlevi

Sorumun cevabını buldum
exports.dashboard = function(req, res) { 
    res.render('user/dashboard', { 
     layout: 'user' 
    }); 
}; 

cevap

5

, sorun Kullanıcı modeli serializeUser ve deserializeUser tanımlandı komut tanımlanmamış olmasıydı. ben catch tüm işleyicisi herhangi bir işlem tanımlamak yoktu çünkü böylece bir şey yakalamak için

app.use(function(err, req, res, next) { 
    console.log(err); 
}); 
+0

Benzer neler olduğunu bilmek tanımlanan tüm işleyicisi olduğundan emin olun hatırlamak, neler olduğunu çözemedim ben serializeUser() sonunda parantez koymak için unutmuştum - sessizce yönlendirme, ancak hata yok. Daha da kötüsü, uygulama yanlış kullanıcı bilgileri girerken sadece iyi çalıştı. – Bruford