护照认证在基本示例中失败

编程入门 行业动态 更新时间:2024-10-27 21:20:21
本文介绍了护照认证在基本示例中失败的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

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

I am trying to break down this passport.js example to its most basic elements. I keep getting a 401 (Unauthorized) message and can't figure out why. Any help would be greatly appreciated.

谢谢!

Node.js文件:

Node.js file:

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 并在代码中使用:

All users of new express.js (4.x and higher) together with passport.js could experience 'Missing credentials' trouble just because POST data is not parsed by default. To fix it install body-parser npm install body-parser and use in your code:

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

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

Good point from @ivarni: app.use( bodyParser.urlencoded({ extended: true }) ); must be placed before injecting any passport middleware.

更多推荐

护照认证在基本示例中失败

本文发布于:2023-11-23 08:57:42,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1620844.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:示例   护照

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!