gpt4 book ai didi

javascript - Passport.js 总是返回 500 内部错误

转载 作者:搜寻专家 更新时间:2023-10-31 23:30:05 28 4
gpt4 key购买 nike

我正在尝试使用 passport.js 构建一个非常简单的身份验证 api,但我的代码总是返回 500 内部错误状态。

var express = require('express');
var bodyParser = require('body-parser');
var cookieParser = require('cookie-parser');
var expressSession = require('express-session');
var logger = require('morgan');
var path = require('path');
var passport = require('passport');
var passportLocal = require('passport-local');

var app = express();

app.set('port', process.env.PORT || 3000);
app.set('view engine', 'ejs');
app.use(logger('dev'));
app.use(bodyParser.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(expressSession({
secret: process.env.SESSION_SECRET || 'secret',
resave: false,
saveUninitialized: false
}));

app.use(passport.initialize());
app.use(passport.session());

passport.use(new passportLocal.Strategy(function (username, password, done) {
console.log('login using ' + username);
done(null, { id: 1, username: 'test', password: '12345'});
}));

passport.serializeUser(function(user, done) {
done(user.id);
});

passport.deserializeUser(function(id, done) {
done({ id: id, username: 'test', password: '12345' });
});

app.get('/', function(req, res) {
res.render('index', {
isAuthenticated: req.isAuthenticated(),
user: req.user
});
});

app.get('/login', function(req, res) {
res.render('login');
});

app.post('/login', passport.authenticate('local'), function(req, res) {
res.redirect('/');
});

app.listen(app.get('port'), function(){
console.log('server is listenning on port ' + app.get('port'));
});

我在“/login”路径下有一个简单的发布表单,我通过在用户名和密码字段中输入我想要的任何内容来测试我的服务器,然后浏览器将发布请求发送到“/login”,然后服务器成功到达线:

console.log('login using ' + username);

结果是服务器向浏览器返回值 1 ( id: 1 ) 和 500 内部服务器错误。

我错过了什么?

最佳答案

发现问题..

serializeUser 中调用 done 函数时,我发送了我的 user.id 作为错误对象。

为了解决这个问题,我简单地替换了:

passport.serializeUser(function(user, done) {
done(user.id);
});

到:

passport.serializeUser(function(user, done) {
done(null, user.id);
});

关于javascript - Passport.js 总是返回 500 内部错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29580522/

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