gpt4 book ai didi

javascript - Express Passport.js 成功重定向不加载页面,请求保持挂起

转载 作者:数据小太阳 更新时间:2023-10-29 06:16:00 24 4
gpt4 key购买 nike

我正在尝试使用 passport.js 和本地 Passport 进行基本的用户名/密码身份验证。

虽然 failureRedirect 确实做了它应该做的事情,(重定向到指定页面),successRedirect 一直挂起对其指定页面的请求,并在一些之后时间,它返回空响应

http://www.deviantpics.com/VdG

正如您在这张图片中看到的,当它请求仪表板时,它说它的大小是 0B,但是当我在没有重定向的情况下继续该仪表板时它说它有 1.6B

我查看了整个 Stackoverflow,但找不到对我有帮助的答案。

在我发狂之前,你能检查一下我的代码并提出一些建议吗?

这是 Passport 加载码

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

路由.js

module.exports = function(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);

登录功能

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

本地策略

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


});

仪表盘功能

exports.dashboard = function(req, res) {
res.render('user/dashboard', {
layout: 'user'
});
};

最佳答案

我找到了我的问题的答案,问题是 User 模型没有在定义 serializeUser 和 deserializeUser 的脚本中定义。我无法弄清楚发生了什么,因为我没有在 catch all 处理程序中定义任何操作,所以要记住,确保已定义 catch all 处理程序以了解发生了什么

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

关于javascript - Express Passport.js 成功重定向不加载页面,请求保持挂起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32575491/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com