Tôi đang cố gắng thực hiện xác thực tên người dùng/mật khẩu cơ bản bằng passport.js và hộ chiếu địa phương.Express Passport.js Chuyển hướng thành công không tải trang, yêu cầu tiếp tục chờ xử lý
Trong khi failRedirect thực hiện chính xác những gì nó được yêu cầu làm, (chuyển hướng đến một trang được chỉ định), successRedirect tiếp tục chờ với yêu cầu cho trang được chỉ định của nó và sau một thời gian, nó trả về "trả lời trống".
http://www.deviantpics.com/VdG
Như bạn thấy trong ảnh này, khi nó được yêu cầu bảng điều khiển, nó nói rằng kích thước của nó là 0B, nhưng khi tôi đi trên bảng điều khiển mà không cần chuyển hướng nó nói nó có 1.6b.
Tôi đã xem xét tất cả qua Stackoverflow và tôi không thể tìm thấy câu trả lời có thể giúp tôi.
Bạn có thể vui lòng kiểm tra mã của tôi và đề xuất điều gì đó trước khi tôi bối rối không.
Đây là mã tải hộ chiếu
//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 = function (ứng dụng) {
//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);
chức năng đăng nhập
exports.loginLocal = passport.authenticate('local', {
successRedirect: '/user/dashboard',
failureRedirect: '/login'
});
chiến lược địa phương
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);
});
});
chức năng bảng điều khiển
exports.dashboard = function(req, res) {
res.render('user/dashboard', {
layout: 'user'
});
};
Tương tự như vậy cho tôi đã quên đặt dấu ngoặc đơn ở cuối serializeUser() - âm thầm không chuyển hướng, nhưng không có lỗi. Thậm chí tệ hơn là ứng dụng hoạt động tốt khi nhập sai chi tiết người dùng. – Bruford