0
我想尝试一个本地策略护照的例子。当我做不正确的密码POST请求(我只有在这一刻单个数据库记录),它仍然结束了执行我的成功函数:护照本地策略执行successcase总是
function (err, user) {
console.log("Login successful");
res.redirect('/loggedIn');
}
在passport.authenticate.Where定义我该怎么错了?何时调用failureRedirect。
var express = require('express');
var app = express();
var http = require('http');
var server = http.Server(app);
var querystring = require('querystring');
var bodyParser = require('body-parser');
var passport = require('passport');
var Strategy = require('passport-local').Strategy;
var users = {
user : {username : "abc", password : "123"},
findByUsername (username, cb) {
return cb(null, this.user);
}
};
app.use(bodyParser.json());
app.use(passport.initialize());
app.use(passport.session());
passport.use(new Strategy(
function verify (username, password, done) {
users.findByUsername(username, function (err, user) {
if (err) { return done(err);}
if (!user) {return done(null, false);}
if (user.password != password) {return done(null, false);}
return done(null, user);
});
} // close verify function
));
app.get('/signupError', function (req, res) {
var result = {error : 'You entered incorrect username/password'};
res.status(200).json(result);
});
app.get('/loggedIn', function (req, res) {
var result = {error : 'You entered correct username/password'};
res.status(200).json(result);
});
app.post('/login', function (req, res) {
passport.authenticate('local', { failureRedirect: '/signupError' },
function (err, user) {
console.log("Login successful");
res.redirect('/loggedIn');
})(req,res);
});
server.listen(80, function() {
console.log("listening") ;
});
都能跟得上使用这种说法。这没有帮助。 – j10