2017-06-21 116 views
0

這種簡約實現本地通行證戰略,始終重定向我/故障:爲什麼這個簡單的護照本地身份驗證不起作用?

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

我不應該被髮送到/成功?

+0

我探討它:捲曲-X POST - H「Conten-Type:application/json」-d'{「username」:「meda」,「password」:「ajana」}'localhost:3000 / – framontb

回答

0

我得到的/成功重定向,如果我補充身體的解析器中間件:

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/