为什么这种简单的护照本地认证不起作用?

时间:2017-06-21 23:39:33

标签: node.js passport.js passport-local

这种简约的本地护照策略实施,总是将我重定向到/失败:



const express = require('express');
const passport = require('passport');
const LocalStrategy = require('passport-local').Strategy;
const session = require('express-session');

var user = {username:"joe", password:"parmesano", id:34};
console.log(user);

passport.use(new LocalStrategy( (username, password, done) => { 
    done(null, user);
}));

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

passport.deserializeUser( (id, done) => {
    done(null, user)
});

const app = express();

app.use(session({ secret: 'jamalaja', resave: false, saveUninitialized: false }));

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

app.post('/', passport.authenticate('local', { failureRedirect: '/failure', successRedirect: '/success' }));

app.listen(3000);




我不应该被送到/成功吗?

1 个答案:

答案 0 :(得分:1)

如果添加body-parser中间件,我会得到/ success重定向:

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

用命令测试它:

curl -X POST -H "Content-Type: application/x-www-form-urlencoded" -d 'username=meda&password=ajana' localhost:3000/