gpt4 book ai didi

javascript - 基本示例中的 Passport 身份验证失败

转载 作者:数据小太阳 更新时间:2023-10-29 04:53:20 25 4
gpt4 key购买 nike

我试图将这个 passport.js 示例分解为最基本的元素。我不断收到 401(未经授权)消息,但无法弄清楚原因。任何帮助将不胜感激。

谢谢!

Node.js 文件:

var http = require('http'),
express = require('express'),
passport = require('passport'),
LocalStrategy = require('passport-local').Strategy,
flash = require('connect-flash');

var port = process.env.PORT || 8080;

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

passport.deserializeUser(function(obj, done) {
done(null, obj);
});

passport.use(new LocalStrategy(
function(username, password, done) {
console.log("LocalStrategy working...");
return done(null, { id: 1, username: 'Joe', password: 'schmo'});
}
));

var app = express();

app.configure(function(){
app.use(express.static(__dirname + '/app'));
app.use(express.cookieParser('big secret'));
app.use(express.bodyParser());
app.use(express.methodOverride());
app.use(express.cookieSession());
app.use(flash());
app.use(passport.initialize());
app.use(passport.session());
app.use(app.router);
});

app.get('/', function (req, res) {
res.sendfile(__dirname + '/index.html');
});

app.post('/login', passport.authenticate('local'), function (req, res) {
console.log("authenticated....");
res.end();
});

app.listen(port);

最佳答案

新的 express.js(4.x 及更高版本)和 passport.js 的所有用户都可能会遇到“缺少凭据”的问题,因为默认情况下不解析 POST 数据。要修复它,请安装 body-parser npm install body-parser 并在您的代码中使用:

var bodyParser = require( 'body-parser' );
app.use( bodyParser.urlencoded({ extended: true }) );

来自@ivarni 的要点:app.use( bodyParser.urlencoded({ extended: true }) ); 必须放在之前 注入(inject)任何 Passport 中间件。

关于javascript - 基本示例中的 Passport 身份验证失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17074375/

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