我将 Passport 与 Node.js 一起使用,但遇到了一个奇怪的问题,
这passport.deserializeUser(function..
永远不会被叫到。
奇怪的是serializeUser(function..
被称为就好了..
然而奇怪的是,几天前它还运行得很好,但现在不是了。 https://i.stack.imgur.com/4fcfp.png我想不出我在系统中所做的任何更改会导致这种情况。
var express = require('express');
var app = express();
var passport = require('passport');
var LocalStrategy = require('passport-local').Strategy;
app.configure(function(){
app.use(passport.initialize());
app.use(passport.session());
app.use(express.static('public'));
app.use(express.cookieParser());
app.use(express.bodyParser());
app.use(express.session({ secret: 'keyboard cat' }));
app.use(app.router);
});
passport.use(new LocalStrategy(function(username, password, done){
return done(null, 'Always Authenticated User');
}));
passport.serializeUser(function(user, done) {
console.log(' serialize OK! ');
done(null, user);
});
passport.deserializeUser(function(id, done) {
console.log('deserialize Never gets called');
done(null,id);
});
app.post('/login'
,passport.authenticate('local'
,{ successRedirect: '/success'
,failureRedirect: '/failure'
,failureFlash: false
} ) );
app.get('/', function(req, res){
// very simple form
res.send("<form id='LoginLocal' action='/login' method='post'><fieldset><legend>Login with username/password</legend><label for='username'> Username: <input type='text' name='username' placeholder='username'><label for='password'> Password: <input type='password' name='password' placeholder='password'><input type='submit' value='Login'></fieldset></form>");
});
app.listen(80);
移动app.use(passport.…
after the app.use(express.…
解决了它。
app.configure(function(){
app.use(express.static('public'));
app.use(express.cookieParser());
app.use(express.bodyParser());
app.use(express.session({ secret: 'keyboard cat' }));
app.use(passport.initialize());
app.use(passport.session());
app.use(app.router);
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)